我正在研究印地语的语音识别。我的方法是基于电话将语音映射到文本。为此,首先将语音拆分为单词,然后通过检测音素将每个单词映射到文本。到目前为止,我能够将语音音频文件拆分为单独的单词音频文件(我为此使用了能级)。
不同手机的数量是 1023。对于每部手机,我每 10ms 帧提取 MFCC 系数。(所以不同的手机有不同的帧数,对于每一帧我存储 38 个系数。这用作每个手机的模板。)同样对于语音中的每个单词,我每 10 毫秒帧提取一次 MFCC 系数。
但我无法找到有效的算法将单词映射到音素序列。为此,我一直在考虑两种方法:
- 天真的蛮力方法,我只是尝试将 word 中每个可能的帧组匹配到每个可用模板(使用 DTW),然后选择最接近的匹配。但这是非常低效的方法。
- 将单词拆分为电话。然后为每部电话从 1023 个可用模板中选择最合适的模板(使用 DTW)。但是在这种方法中,我不知道如何将单词分成单独的电话。
有没有其他方法可以解决这个问题?还是可以使用第二种方法有效地完成?