Closed hsingchenlee closed 3 years ago
我解決 試聽 VAD效果的問題了,目前剩 對VAD的參數如何設定比較模糊。
如果只做VAD,那么只需要调用 silence_detector.py
里的 class SilenceDetector
.
silence_detector.py
里的 44~70行 还有 pre_process.py
里的 def VAD
展示了用法。
有些参数是根据实际的数据而定的。
start sec
和 end sec
在 constants.py
里的 TRUNCATE_SOUND_SECONDS
设置, 表示你要截取多长的语音。 一般情况语音长度 end sec - start sec
需要在1 s 以上,但是太长的话 处理会很慢,要求资源很高。 比如我选择(start sec, end sec)=(0.2, 1.81)
也就是截取1.81 - 0.2 ~ 1.6
s 长度的语音。
threshold
表示 判断为静音的阈值。当一小段语音的能量小于threshold 时就被判定为静音,并且之后会将其删掉。 threshold =15
时比较正常的设置。 如果threshold 偏大那么可能将音量较小的有用语音误删掉,如果太小那么可能会喽漏删一部分静音部分。
非常感謝您的回覆,但是train-clean-100 的音檔平均大約都是十幾秒,所以設定(start sec, end sec)=(0.2, 1.81),所得出的npy檔 只代表長度共1.6秒的wav音檔的聲音資訊這樣對吧? 另外想請問您,這邊是利用每個speaker講得很多不同語句餵進model去學習如何讓model輸出的每個不同speaker的embeddings的COSINE相似度越來越小(這個理解是對的嗎?) 你覺得如果用此model架構做哼唱辨識是可行的嗎? 就是我可能變成有很多singing ID 每個singing ID都是同一句歌詞由不同人來清唱(所以可能音檔長度會是十幾秒)但是前提是音要準但可以唱的高也可以唱的低,依照speaker id的DATA 來看 我可能至少要有數百個singing ID 且每個singing ID至少要有數十個不同人的清唱wav檔。之後再把歌曲分割成好幾段後用TRAIN好的MODEL取embeddings,把每段的embeddings疊起來就代表這整首歌曲,對數百首歌曲取完EMBEDDINGS後存起來當作DATABASE, 之後請哼唱者哼唱十幾秒取embeddings,再把這個embeddings去和DATABASE做相似度比較 找出它唱的是哪首歌曲。 您覺得這個想法是可行的嗎或是可能會有什麼很大的問題? 謝謝您
抱歉又打擾了, 可以請你解釋一下 clipped_audio 這個函數內 bias = np.random.randint(20, x.shape[0] - num_frames) 這串的意義嗎,這樣是不是對我上述的Singing ID 不太好? 謝謝您
如果语音很长,这样每次随机的截一部分,而不是每次都取固定的片段。比如原始的语音长度为 200 frames, 我们需要截取 c.NUM_FRAMES=160
的长度。那么我们就从中间随机截一段,跟随机数 bias
有关。比如 bias = 20
时,截取 [20:160+20]的长度,当 bias = 31
时,截取 [31:160+31]的长度。 这样每次从同一个语音得到的片段不太一样,这样可以防止过拟合。
您好,想請問關於VAD部分的RUN法以及參數設定問題。假如我想對一段語音做VAD,我只要取用pre_process.py 裡的這兩行 filename = '我要做VAD的音檔.wav' raw_audio = read_audio(filename) 這個raw_audio 取出來的數值 即是做完VAD後的值 我這樣用法是對的嗎?對的話那又該如何聽聽看這個 raw_audio 的效果呢? 另外想請問參數是如何設定的以及該設定多少,(例如start sec , end sec 還有 threshold值) 非常感謝您。