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

C# 實現語音朗讀與語音簡訊發送:基於 Microsoft SAPI 5.1

     編輯:關於C#

專案中客戶要求實現給集團公司員工發送簡訊(如拜年簡訊),另支援給主管發送語音簡訊。實現方法如下。

群發簡訊方式比較

1.1 簡訊貓

一台普通工控機,插入 SIM 卡,透過介面發送簡訊,點對點發送,到達率快準確,但呼出號碼為普通手機號碼。缺點:移動對 SIM 卡限制每小時 200 條,發送過多會鎖卡。目前有 8 埠簡訊貓,即 1 小時最多發 1600 條。每條成本 0.1 元。

技術實現:一般配合簡訊貓 SDK 組件,共享資料庫作為介面。定義 4 個表:待發送表、發送成功表、發送失敗表、訊息接收表(系統可接收處理用戶發送簡訊,雙向互動)。

1.2 SP 方式

專門做簡訊的 SP 廠商提供各種介面,只需呼叫即可,到達率視申請業務而定,可保證呼出為特服號,無需購買設備,適合提供公用資訊業務、目標號碼不確定。具體費用需與 SP 談判,據說最便宜能談到 4 分錢。在此譴責 SP 廠商對垃圾簡訊的放任。

1.3 移動企信通

一台工控機,移動提供。有特服號,到達率高,但有發送人員白名單限制,適合企業內部使用。移動提供 SDK 開發包,費用依簡訊量採包月模式,發送成本 5 分錢。這是我們準備採用的方式。

群發語音簡訊

聯繫 SP 廠商,可採用租用座席方式做外呼,只播放語音。廠商提供介面,上傳 WAV 檔案與發送人員名單到伺服器。

語音簡訊開發中,涉及如何將輸入文字朗讀並儲存為 WAV 檔案,即 TTS (Text-to-Speech)。專案採用 Microsoft SAPI 5 開發,步驟如下:

1. 下載 SAPI SDK 與語言包(支援中文與日文)

  • SAPI 5 SDK: 下載連結
  • 中文語言包:需額外下載安裝

2. 程式碼實作範例

using SpeechLib;

public class TTSHelper {
    public static void TextToWav(string text, string outputWavPath) {
        SpVoice voice = new SpVoice();
        SpFileStream stream = new SpFileStream();
        stream.Open(outputWavPath, SpeechStreamFileMode.SSFMCreateForWrite);
        voice.AudioOutputStream = stream;
        voice.Speak(text, SpeechVoiceSpeakFlags.SVSFDefault);
        stream.Close();
    }
}

注意:需在專案加入 SpeechLib 參考 (COM 標籤下的 Microsoft Speech Object Library)。中文朗讀需安裝中文語音引擎 (如 Microsoft Lili 或 Microsoft Huihui)。

整合建議

  • 簡訊發送採用資料庫佇列 + 背景服務輪詢模式,支援重試與狀態追蹤
  • 語音簡訊先透過 TTS 產生 WAV,再上傳至 SP 平台發送
  • 建立統一發送介面,支援多通道切換(簡訊貓/SP/企信通)
  • 記錄完整發送日誌,便於稽核與除錯
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved