在嵌入式设备中常常会用到tts(Text To Speech)播报,在使用tts语音库时需要注意一下几点:
1、生成tts语音的频率。通常情况下 tts语音频率为8k。
2、设备声卡支持的频率。这个跟硬件有关系。有8k、16、32等。
如果生成的语音频率与硬件不匹配,那么我们怎么处理呢?
我们可以把tts语音频率转换为硬件支持的频率。
通常 SOUND_PCM_WRITE_BITS 为16位
如把 8k 转 16k
就是每个16位复制一次。(相同16位出现 2次)
如果是8k转32k
就是每个16位复制3次。(相同16位出现 4次)
下面是8k转16k
int i = 0;
int j = 0;
for(i = 0 ; i < len; i += 2)//每两个字节即使16位
{
for(j = 0; j < 2 ;j++)//2次相同 16k = 8k*2
{