gpt4 book ai didi

voice-recognition - 耳语时简单的语音识别

转载 作者:行者123 更新时间:2023-12-04 07:48:06 25 4
gpt4 key购买 nike

我正在尝试使用Pocketsphinx(。进行简单的语音到文本映射。语法非常简单,例如:

public <grammar> = (Matt, Anna, Tom, Christine)+ (One | Two | Three | Four | Five | Six | Seven | Eight | Nine | Zero)+ ;


例如:

Tom Anna Three Three


产量

Tom Anna 33


我调整了声学模型(考虑了我的外国口音),此后,我获得了不错的表现(〜94%的准确性)。我使用了约3分钟的训练数据集。
现在,我正在尝试做同样的事情,只是通过对着麦克风低语。不进行培训,准确性显着下降至〜50%。有口音训练
我得到了〜60%。我尝试了其他方法,包括降噪和增加音量。我阅读了整个文档,但想知道是否有人可以回答一些问题,所以我可以
更好地了解应该朝哪个方向改进性能。

1)在教程中,您正在适应hub4wsj_sc_8k声学模型。我猜“ 8k”是一个采样参数。使用sphinx_fe时,请使用“ -samprate 16000”。是否故意使用16k采样率的数据训练8k模型?为什么没有使用8k采样的数据?它对性能有影响吗?

2)在狮身人面像4.1中(与Pocketsphinx相比)有不同的声学模型,例如WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz.jar。那些型号可以与Pocketsphinx一起使用吗?使用16k采样率的数据的声音模型是否通常会具有更好的性能?

3)在使用数据进行训练时,我该使用正常说话模式(仅适应我的口音)还是低语模式(适应耳语和我的口音)的数据?我想我尝试了两种情况,并没有发现任何结论,但是我不知道Pocketsphinx内部原理,所以我可能做错了什么。

4)我使用以下脚本记录了本教程中的适应性培训和测试数据:

for i in `seq 1 20`; do 
fn=`printf arctic_%04d $i`;
read sent; echo $sent;
rec -r 16000 -e signed-integer -b 16 -c 1 $fn.wav 2>/dev/null;
done < arctic20.txt


我注意到,每次按Control-C时,此按键在录制的音频中都是不同的,从而导致错误。整理音频播放时间有助于纠正或导致
其他错误。是否有要求每个录音在讲话前后要有几秒钟的时间?

5)累积观察计数时,我可以调整任何设置以提高性能吗?

6)半连续模型和连续模型有什么区别? Pocketsphinx可以使用连续模型吗?

7)我注意到sphinx4中的'mixture_weights'文件比您在pocketsphinx-extra中获得的文件小得多。有什么区别吗?

8)我尝试了不同的去除白噪声的组合(使用'sox'工具包,例如sox noisy.wavfiltered.wav noisered profile.nfo 0.1)。取决于最后一个参数
有时会有所改善(〜3%),有时会变得更糟。消除噪音是好事还是Pocketsphinx所做的事情?我的环境很不错
我想只有白噪声在录音低声的时候会有更多的声音。

9)我注意到,即使对于人类来说,区分单词更容易,但大多数时候仅增加音量(增益)只会使性能稍差一些。我应该避免吗?

10)总的来说,我尝试了不同的组合,仅去除噪音时,我得到的最佳结果是〜65%,因此只有很小的改善(5%)。以下是一些统计信息:

//ORIGNAL UNPROCESSED TESTING FILES
TOTAL Words: 111 Correct: 72 Errors: 43
TOTAL Percent correct = 64.86% Error = 38.74% Accuracy = 61.26%
TOTAL Insertions: 4 Deletions: 13 Substitutions: 26


//DENOISED + VOLUME UP
TOTAL Words: 111 Correct: 76 Errors: 42
TOTAL Percent correct = 68.47% Error = 37.84% Accuracy = 62.16%
TOTAL Insertions: 7 Deletions: 4 Substitutions: 31


//VOLUME UP
TOTAL Words: 111 Correct: 69 Errors: 47
TOTAL Percent correct = 62.16% Error = 42.34% Accuracy = 57.66%
TOTAL Insertions: 5 Deletions: 12 Substitutions: 30

//DENOISE, threshold 0.1
TOTAL Words: 111 Correct: 77 Errors: 41
TOTAL Percent correct = 69.37% Error = 36.94% Accuracy = 63.06%
TOTAL Insertions: 7 Deletions: 3 Substitutions: 31


//DENOISE, threshold 0.21
TOTAL Words: 111 Correct: 80 Errors: 38
TOTAL Percent correct = 72.07% Error = 34.23% Accuracy = 65.77%
TOTAL Insertions: 7 Deletions: 3 Substitutions: 28


我仅用于测试数据的那些处理。培训数据是否应该以相同的方式处理?我想我已经尝试过了,但是没有什么区别。

11)在所有这些测试中,我都使用了ARPA语言模型。使用JGSF时,结果通常会更差(我拥有最新的Pocketsphinx分支)。这是为什么?

12)因为每个句子的最大数量为'999',并且名称不超过3个,所以我修改了JSGF,并通过手动重复括号中的内容来替换重复符号'+'。这次的结果更接近ARPA。语法中有没有办法像正则表达式那样告诉最大重复次数?

13)当使用ARPA模型时,我通过使用所有可能的组合生成了该模型(由于字典是固定的,并且非常小:〜15个单词),但随后测试我仍然收到一些非法结果,例如汤姆·安娜(没有任何必填号码)。有什么方法可以使用ARPA模型强制执行某些结构?

14)词典应仅限于15个单词左右还是仅完整的词典仅影响速度而不影响性能?

15)窃窃私语时,修改字典(音素)是否可以提高识别度? (我不是专家,但是当我们窃窃私语时,我想有些话听起来可能会有所不同?)

16)其他任何提高准确性的技巧将非常有帮助!

最佳答案

关于耳语:这样做时,声波没有有意义的非周期性声部(由于声带正常共振而产生的振动,而耳语时则没有)。您可以通过大声说“ aaaaaa”的同时将手指放在喉咙上,然后轻声细语来尝试一下。

AFAIR声学建模在很大程度上取决于获取声音的频谱来检测峰值(共振峰)并将其与电话(如元音)相关联。

有根据的猜测:耳语时,频谱大多是白噪声,由口腔位置(舌头,嘴巴张开等)略微影响,这对人类来说足够了,但远不足以使计算机可以区分窥视。

关于voice-recognition - 耳语时简单的语音识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11723139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com