自己写一个linux下wav声音的播放程序,16khz stereo,8khz stereo播放均无误问题,后来需要播放16khz mono的wav,明显语速加快。语音文件没问题,语音文件的参数提取也没问题。看了很久关于wav文件格式,linux下音频文件播放之类的东西。后来上网看到这样一句话“仔细看了uda1341的驱动,发现只能播放16bit的音频,单声道的音频在应用程序向驱动复制时转化成双声道。”,才发现,原来是UDA1341驱动的问题。
意思就是,16khz的mono得当成8khz stereo的参数来设置。改之,成功。
补充: 今天发现一个问题,播放16Khz mono , 如果分割为一小段一小段往声卡送的话,停止以后还会播放一断时间。感觉好像是声卡来不及取数据。将16Khz的mono用软件转为8Khz的stereo试着,结果不行,同样的问题。转为16KHz的stereo后,可以立即中断。
不知道是不是跟声卡的驱动有关系。。。