0

对于一个中文学习应用程序,我们让用户记录一个音节,然后我们使用语音识别来评估发音是否正确。

每个汉语音节都可以用具有不同含义的不同声调(音高差异)发音。我们发现谷歌翻译和 Swift Speech 框架都不够准确,无法确定发音是否正确。因此,我们使用贝多芬从音频中检测音高,以在语音识别 API 之外进行评估。

挑战在于,在汉语中,声调仅在音节的元音中发音。因此,如果用户只发元音,例如“a”,贝多芬就可以很好地工作。但是在诸如“san”之类的音节中,结果被辅音“s”和“n”所掩盖。

所以我正在寻找一种方法将音节录音修剪为仅元音,以便我们可以仅在元音上使用贝多芬并正确检测中文音调。我也很高兴知道是否有人对如何应对这一挑战有更好的想法。

最好的,保罗

4

1 回答 1

2

关于元音和辅音的一个可能有用的事实是,元音通常被认为具有趋于谐波并集中在共振峰区域的频率内容(前两个是最重要的,而第二个低于 3K Hz ),并且许多辅音(摩擦音、咝音)在 4K Hz 或以上具有噪声能量。这是一个很好的图表,来自一个关于摩擦音声学的讲座,可以看到这一点。

ASA 声像图

您可能需要比贝多芬更复杂的快速傅立叶分析工具来区分何时存在咝咝声或摩擦音的频率内容。我没有使用过贝多芬,也不知道它的功能是什么。

不过,我对鼻音知之甚少。相同的讲座系列,不同的章节(“爆破音和鼻音”)提供了以下信息:

元音的鼻化是由低频共振的存在和共振峰阻尼的增加引起的。

在我看来,通过频谱来区分鼻音和元音是一项挑战。

于 2021-09-29T22:35:29.620 回答