首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

三行代碼讓 C# 開口說話:SpeechSynthesizer 語音合成入門

     編輯:關於C#

.NET Framework 內建 System.Speech.Synthesis.SpeechSynthesizer,無需第三方套件、無需雲端 API Key,幾行代碼即可實現文字轉語音(TTS)。預設語音為中文女聲(Windows 7+ 內建 Microsoft Huihui),適合輔助閱讀、無障礙提示、自動播報等場景。

快速上手三步驟

  1. 專案 → 加入參考 → System.Speech
  2. using System.Speech.Synthesis;
  3. 實例化並呼叫 SpeakAsync()(非同步)或 Speak()(同步)

極簡範例

private void btnSpeak_Click(object sender, EventArgs e) {
    if (string.IsNullOrWhiteSpace(txtInput.Text)) return;

    var sp = new SpeechSynthesizer();
    sp.SpeakCompleted += (s, args) => btnSpeak.Enabled = true; // 讀完恢復按鈕
    btnSpeak.Enabled = false;
    sp.SpeakAsync(txtInput.Text); // 非同步,不阻塞 UI
}

執行畫面:輸入文字點擊按鈕即朗讀

常用進階設定

屬性/方法用途
SelectVoice("Microsoft Huihui")指定語音引擎(需系統已安裝)
Volume (0-100)音量
Rate (-10~10)語速
SpeakSsml()支援 SSML 標記(換行、停頓、音調)
SetOutputToWaveFile()輸出 .wav 檔而非直接播放

注意事項

  • x64 專案:SpeechSynthesizer 需 32 位元模式,專案屬性 → Build → 取消勾選 "Prefer 32-bit" 會導致找不到語音引擎。
  • 語言包:Windows 10/11 預設僅內建中文/英文,其他語言需在「設定 → 時間與語言 → 語音」下載。
  • 非同步處理:長文本建議用 SpeakAsync 搭配 SpeakProgress 事件做即時高亮或進度條。

別再為簡單的語音需求引入重型雲端 SDK,SpeechSynthesizer 早就躺在 GAC 裡等你呼喚了。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved