C#實現語音朗讀功能


引用類庫:System.Speech.dll

導入空間:

using System.Speech.Synthesis; //用於生成響應的事件
using System.Speech;
using System.Speech.Recognition;

//1.Async="true"

//2.SpeechSynthesizer speak = new SpeechSynthesizer();

//同步朗讀
//3.1 speak.Speak(txt.Text.Trim());
//speak.Dispose();  //釋放之前的資源

//異步朗讀
//3.2 speak.SpeakAsync(txt.Text.Trim());

//speak.Volume = 100;  //設置朗讀音量 [范圍 0 ~ 100] 
//speak.Rate = 0;      //設置朗讀頻率 [范圍  -10 ~ 10] 
//speak.SelectVoice("Microsoft Lili");  //SpeakChina
//speak.SelectVoice("Microsoft Anna");  //SpeakEnglish
//SelectVoiceByHints(VoiceGender.Male, VoiceAge.Child, 2, System.Globalization.CultureInfo.CurrentCulture);
//speak.SpeakAsyncCancelAll();  //取消朗讀
//speak.SetOutputToWaveFile("c:\\message.wav");

//語音合成
//4.PromptBuilder pb = new PromptBuilder();
//speak.SelectVoice("Microsoft Lili");
//pb.ClearContent();

//.Net 4.0 的實現方式: 
/*
    Type type = Type.GetTypeFromProgID("SAPI.SpVoice");
    dynamic spVoice = Activator.CreateInstance(type);
    spVoice.Speak("你好,歡迎使用 CSharp 4.0!");
    */

//5.語音完成
/*
    speak.SpeakCompleted += new EventHandler<SpeakCompletedEventArgs>(speak_SpeakCompleted);
    void speak_SpeakCompleted(object sender, SpeakCompletedEventArgs e)
    {
    txt.Text = "完成";
    }
    */

//SPEAK 開始 
/*var reader = new SpeechSynthesizer();
reader.SpeakAsync(txt.Text); */

//event handler 
//reader.SpeakCompleted += new EventHandler<SpeakCompletedEventArgs>(reader_SpeakCompleted);
//或
//sp.SpeakCompleted += (s, arg) => txt.Text = "true";

//PAUSE 暫停
/*if (reader.State == SynthesizerState.Speaking)
{
    reader.Pause();
    btn_pause.Text = "繼續";
}*/

//RESUME 繼續
/*if (reader.State == SynthesizerState.Paused)
{
    reader.Resume();
    btn_pause.Text = "暫停";
}*/

//STOP 停止
//reader.Dispose(); 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM