对于一个中文学习应用程序,我们让用户记录一个音节,然后我们使用语音识别来评估发音是否正确。
每个汉语音节都可以用不同的音调(音高差异)发音,这些音调具有不同的含义。我们发现Google Translate和Swift Speech framework都不够准确,无法确定发音的语气是否正确。因此,我们使用Beethoven从音频中检测音调,以在语音识别应用编程接口之外进行评估。
挑战在于,在汉语中,声调只在音节的元音中发音。因此,如果用户只发一个元音,例如"a“,那么贝多芬就能很好地工作。但是在像"san“这样的音节中,辅音"s”和"n“会使结果变得模糊。
因此,我正在寻找一种方法,将音节录音只修剪成元音,这样我们就可以只在元音上使用贝多芬,并正确地检测出汉语的声调。我也很高兴知道是否有人对如何应对这一挑战有更好的想法。
最好的,保罗
发布于 2021-09-29 22:35:30
关于元音和辅音的一个可能有帮助的事实是,元音通常被认为具有倾向于谐波的频率内容,并且集中在共振峰区域(前两个是最重要的,第二个是低于3K Hz的),并且许多辅音(摩擦音、喉音)在4K Hz或以上具有嘈杂的能量。这是一个很好的来自lecture on the acoustics of fricatives的图表,其中可以看到这一点。

你可能需要比贝多芬更复杂的快速傅立叶分析工具来区分是否存在浊音或摩擦音的频率成分。我没有用过贝多芬,也不知道它的功能是什么。
不过,我对鼻腔了解不多。同样的讲座系列,不同的章节(“塞斯和鼻音”)给出了这个信息:
元音的鼻化是通过低频共振和共振峰阻尼的增加来提示的。
在我看来,通过鼻音和元音的频谱来区分鼻音和元音是很有挑战性的。
https://stackoverflow.com/questions/69380716
复制相似问题