專案中客戶要求實現給集團公司員工發送簡訊(如拜年簡訊),另支援給主管發送語音簡訊。實現方法如下。
一台普通工控機,插入 SIM 卡,透過介面發送簡訊,點對點發送,到達率快準確,但呼出號碼為普通手機號碼。缺點:移動對 SIM 卡限制每小時 200 條,發送過多會鎖卡。目前有 8 埠簡訊貓,即 1 小時最多發 1600 條。每條成本 0.1 元。
技術實現:一般配合簡訊貓 SDK 組件,共享資料庫作為介面。定義 4 個表:待發送表、發送成功表、發送失敗表、訊息接收表(系統可接收處理用戶發送簡訊,雙向互動)。
專門做簡訊的 SP 廠商提供各種介面,只需呼叫即可,到達率視申請業務而定,可保證呼出為特服號,無需購買設備,適合提供公用資訊業務、目標號碼不確定。具體費用需與 SP 談判,據說最便宜能談到 4 分錢。在此譴責 SP 廠商對垃圾簡訊的放任。
一台工控機,移動提供。有特服號,到達率高,但有發送人員白名單限制,適合企業內部使用。移動提供 SDK 開發包,費用依簡訊量採包月模式,發送成本 5 分錢。這是我們準備採用的方式。
聯繫 SP 廠商,可採用租用座席方式做外呼,只播放語音。廠商提供介面,上傳 WAV 檔案與發送人員名單到伺服器。
語音簡訊開發中,涉及如何將輸入文字朗讀並儲存為 WAV 檔案,即 TTS (Text-to-Speech)。專案採用 Microsoft SAPI 5 開發,步驟如下:
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)。