建設(shè)教育網(wǎng)站整合營(yíng)銷方案怎么寫
文章目錄
- 數(shù)據(jù)文件準(zhǔn)備
- wav.scp
- utt2spk
- spk2utt
- text
- 相關(guān)代碼
- 根據(jù)文件生成 utt2spk 和 wav.scp
- utt2spk -- spk2utt 轉(zhuǎn)換
數(shù)據(jù)文件準(zhǔn)備
在訓(xùn)練/解碼中:
有三個(gè)文件是必要的:
- wav.scp 語(yǔ)音編號(hào) – 路徑信息
- utt2spk 語(yǔ)音編號(hào) – 說話人編號(hào)
- spk2utt 說話人編號(hào) – 說話人的語(yǔ)音編號(hào);可以根據(jù) spk2utt 生成,下面將會(huì)介紹
一個(gè)標(biāo)注文件用于測(cè)試的:
text
這里以 aishell 為例:
wav.scp
結(jié)構(gòu)
[utterance] [wav_path]
BAC009S0002W0122 /home/code/kaldi/egs/aishell/s5/data1/data_aishell/wav/train/S0002/BAC009S0002W0122.wav
BAC009S0002W0123 /home/code/kaldi/egs/aishell/s5/data1/data_aishell/wav/train/S0002/BAC009S0002W0123.wav
BAC009S0002W0124 /home/code/kaldi/egs/aishell/s5/data1/data_aishell/wav/train/S0002/BAC009S0002W0124.wav
utt2spk
結(jié)構(gòu):
[utterance] [speaker]
BAC009S0002W0122 S0002
BAC009S0002W0123 S0002
spk2utt
結(jié)構(gòu):
[speaker] [utterance]
S0002 BAC009S0002W0122 BAC009S0002W0123 BAC009S0002W0124 BAC009S0002W0125 BAC009S0002W0126 BAC009S0002W0127 BAC009S0002W0128 BAC009S0002W0129 BAC009S0002W0130 BAC009S0002W0131 BAC009S0002W0132 ...
S0003 BAC009S0003W0121 BAC009S0003W0122 BAC009S0003W0123 BAC009S0003W0124 BAC009S0003W0125 BAC009S0003W0126 BAC009S0003W0127 BAC009S0003W0128 BAC009S0003W0129 BAC009S0003W0130 BAC009S0003W0131 ...
S0004 BAC009S0004W0121 BAC009S0004W0123 BAC009S0004W0124 BAC009S0004W0125 BAC009S0004W0126 BAC009S0004W0127 BAC009S0004W0128 ...
text
[utterance] [transcript]
BAC009S0002W0122 而 對(duì) 樓市 成交 抑制 作用 最 大 的 限 購(gòu)
BAC009S0002W0123 也 成為 地方 政府 的 眼中 釘
BAC009S0002W0124 自 六月 底 呼和浩特 市 率先 宣布 取消 限 購(gòu) 后
BAC009S0002W0125 各地 政府 便 紛紛 跟進(jìn)
BAC009S0002W0126 僅 一 個(gè) 多 月 的 時(shí)間 里
相關(guān)代碼
根據(jù)文件生成 utt2spk 和 wav.scp
假設(shè)文件按 說話人–音頻 排列,可以使用下屬代碼生成 utt2spk 和 wav.scp 文件
import osdata_root_dir = 'data'
utt2spk_path = 'utt2spk'
wav_scp_path = 'wav.scp'for speaker in os.listdir(data_root_dir):if speaker.startswith('.'):continuespearker_dir = os.path.join(data_root_dir, speaker)for wav in os.listdir(spearker_dir):if wav.startswith('.'):continuewav_path = os.path.join(spearker_dir, wav)wav_id = f'{speaker}_{wav}' with open(wav_scp_path, 'a') as fa:fa.write(wav_id + ' ' + wav_path + '\n')with open(utt2spk_path, 'a') as fa:fa.write(wav_id + ' ' + speaker + '\n')
utt2spk – spk2utt 轉(zhuǎn)換
你可以使用代碼 將 utt2spk 轉(zhuǎn)為 文件:
kaldi_root/egs/wsj/s5/utils/utt2spk_to_spk2utt.pl utt2spk > spk2utt
utt2spk 文件內(nèi)不能有空行,否則可能報(bào)錯(cuò)
同樣,你也可以使用 spk2utt_to_utt2spk.pl
反向?qū)?spk2utt 生成 utt2spk
伊織 2023-02-09 (四,晴)