如何使用线性预测编码来压缩语音双音素样本?

时间:2017-02-11 18:04:16

标签: c compression signal-processing speech-synthesis

我正在为我的母语研究一种实验性双音素语音合成器,这对于盲人来说缺乏良好的语音合成器。

问题在于录制的双音素库可能会变得非常庞大(数百兆字节,正如那里最好的语音合成器所见)。

我见过一些带有小型语音样本库的高质量双音素合成器。在阅读有关语音合成的各种论文时,特别是关于那些较小的合成器,他们说他们已经使用LPC(线性预测编码)来使他们的语音样本库的尺寸小得多,而且他们说LPC给他们带来了额外的好处,更容易从语音样本中汇集语音时的音调控制。

不幸的是,我找不到任何初学者级别的教程,可以使用LPC来压缩语音样本。我设法找到的所有材料都充满了大学水平的数学。我想我不需要研究所有这些只是为了使用LPC(如果我可以使用FFT库在我的软件中生成频率图,我应该能够使用类似的LPC库"黑色方式,对吧?)。

唯一或多或少的"生产就绪"我设法找到的代码似乎就是这个:https://github.com/longluo/VoiceCodec/tree/master/src

它有四个与LPC相关的文件夹 - openlpc,lpc,lpc10和celp。他们的头文件只有一些功能,但遗憾的是没有单元测试或教程证明他们使用语音样本压缩/解压缩。

对于有DSP经验的人,请看一下这些功能的解释吗?例如,此文件中的那些:https://github.com/longluo/VoiceCodec/blob/master/src/openlpc/openlpc.h

我想看一个简单的演示,用于将原始PCM波形字节(以什么格式?)馈送到LPC编码器中进行压缩,然后将压缩数据与其他参数一起送回LPC解码器(它们的值和效果是什么)解码结果?)。

openlpc,lpc,lpc10和celp之间有什么区别?哪种最适合我的目的?

我还可以打开其他LPC压缩/解压缩解决方案,以防您能够提供比上述VoiceCodec项目代码更好,更全面的文档。

注意 - 请不要解释LPC的内部运作;就我而言,这就像向一个只想学习驾驶汽车的人解释燃料化学一样。

0 个答案:

没有答案