今天搞了下微軟的TTS,逛了好多網頁、博客,拼拼湊湊搞了點東西吧。
首先添加類庫調用,系統自帶的system.speech
1 using System.Speech.Synthesis;
然後就能調用方法了
1 SpeechSynthesizer speech = new SpeechSynthesizer(); 2 speech.Rate = int.Parse(dudRate.Text);//語速 3 speech.Speak("Hello TTS"); 4 speech.Dispose();
裡面有個speech.SelectVoiceByHints()方法。按它的解釋可以自己挑選聲音,我還以為看到曙光了,一邊寫一邊贊歎微軟的強大。等寫好運行時才發現沒有用,一點變化也沒有。當然也不知道它默認的聲音是哪來的。然後又看了一邊裡面的方法,發現有個只讀的成員speech.voice,它有好多屬性(age、gender、name...)。果斷調個name看看,我電腦聲音是誰的。結果是 Micrsoft HUihui Desktop。額,有點扯多了。這個名字可以在控制面板裡的講述人和語音識別裡找到。我系統是win8的,還有個Micrsoft Zira Desktop,這個只能讀英語。huihui都能讀,但讀英語效果沒Zira好,真是難以取捨哇。
這是設置語音的方法。不設置的話就用系統默認的了。
1 speech.SelectVoice("Micrsoft HUihui Desktop");
都只有女聲,聽聽就膩了,偶爾也要換換口味嘛。想看看系統還有其他語音麼
貌似又感覺到微軟強大的曙光了。。果斷滿懷希望點進去看了,但是但是萬萬沒想到跳出個英文網站,而且根本沒有其它語音,網頁看上去也有點年紀的樣子。然後在微軟社區搜了下,說是不能添加講述人語音的。好吧~~
還是加其它語言庫吧,都說NeoSpeech好,撿過來用用。它有好幾中類型的
一開始直接裝了個Paul,調用
1 speech.SelectVoice("VW Paul"); 2 speech。speak("Hello");
運行聽聽看,果然還是男聲很好聽。不是我有問題,是系統自帶的語音沒這個好,之後用女聲的感覺更好哦。但是我就寫了個hello,為啥他能說這麼多,話唠哇。。聽了好幾次才發現原來是廣告,原來我下的是未注冊的。我這麼正直怎麼能用這個呢,於是又到網上蕩了,查到漢語大字典網站上有正版的哦。
附上下載鏈接
還有個保存音頻的功能,代碼:
1 SpeechSynthesizer speech = new SpeechSynthesizer(); 2 SaveFileDialog file = new SaveFileDialog(); 3 file.Title = "保存音頻文件"; 4 file.InitialDirectory = ".\\";//對話框的初始目錄 5 file.Filter = "音頻文件|*.wav";// 要在對話框中顯示的文件篩選器 6 file.RestoreDirectory = true;//控制對話框在關閉之前是否恢復當前目錄 7 file.FilterIndex = 1;//在對話框中選擇的文件篩選器的索引,如果選第一項就設為1 8 file.AddExtension = true; 9 if (file.ShowDialog() == DialogResult.OK) 10 { 11 speech.SetOutputToWaveFile(file.FileName);//這三個方法順序不能換哦 12 speech.Speak(richTextBox1.Text); 13 speech.SetOutputToNull(); 14 }
寫得有點亂的感覺