SoundPlayer是爲應用程序添加音頻功能最簡單、最輕量型的方法,但只能播放wav格式的語音。code
百度在線語音合成能夠合成wav格式的語音,保存爲本地文件,SoundPlayer出錯,仔細看文檔發現百度的wav就是pcm-16k(3爲mp3格式(默認); 4爲pcm-16k;5爲pcm-8k;6爲wav(內容同pcm-16k))orm
而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格式的文件了。form