SoundPlayer是為應用程式添加音頻功能最簡單、最輕量型的方法,但只能播放wav格式的語音。 百度線上語音合成可以合成wav格式的語音,保存為本地文件,SoundPlayer出錯,仔細看文檔發現百度的wav就是pcm 16k(3為mp3格式(預設); 4為pcm 16k;5為pcm 8k;6為 ...
SoundPlayer是為應用程式添加音頻功能最簡單、最輕量型的方法,但只能播放wav格式的語音。
百度線上語音合成可以合成wav格式的語音,保存為本地文件,SoundPlayer出錯,仔細看文檔發現百度的wav就是pcm-16k(3為mp3格式(預設); 4為pcm-16k;5為pcm-8k;6為wav(內容同pcm-16k))
而pcm格式轉換成wav格式只要在前面添加44位元組的格式數據
_WaveHeader = new byte[] {
(byte)'R',(byte)'I',(byte)'F', (byte)'F', //4
0,0,0,0,//4位元組文件長度,包括這44個位元組
(byte)'W',(byte)'A',(byte)'V', (byte)'E', //4
(byte)'f',(byte)'m',(byte)'t', (byte)' ', //4
16,0,0,0,// length of FORMAT chunk (always 0x10)
1,0,//format: 1(PCM) ,2位元組
1,0,//Channels 1 = 單聲道,2位元組
128,62,0,0,//採樣頻率 16000(16K)
0,125,0,0,//採樣速率 1*16000*2
2,0,//採樣位元組數(16/8 2位元組)
16,0,//採樣位數(16位)
(byte)'d',(byte)'a',(byte)'t', (byte)'a', //4
0,0,0,0 //4位元組語音數據長度
};
替換4-7和40-43位元組的內容便是wav格式的文件了。