c# 實現初級的語音識別
目前支援中文的Speech SDK最高版本為Windows平臺下的SAPI 5.1(),本文介紹如何在.net平臺下利用SAPI5.1開發中文語音應用程式。
1. SAPI.51 SDK淺析以及安裝
SAPI SDK是微軟公司免費提供的語音應用開發工具包,這個SDK中包含了語音應用設計介面(SAPI)、微軟的連續語音識別引擎(MCSR)以及微軟的語音合成(TTS)引擎等等。目前的5.1版本一共可以支援3種語言的識別 (英語,漢語和日語)以及2種語言的合成(英語和漢語)。SAPI中還包括對於低層控制和高度適應性的直接語音管理、訓練嚮導、事件、語法編譯、資源、語音識別(SR)管理以及TTS管理等強大的設計介面。其結構如圖(1):
圖(1)
語音引擎則通過DDI層(裝置驅動介面)和SAPI(SpeechAPI)進行互動,應用程式通過API層和SAPI通訊。通過使用這些API,使用者可以快速開發在語音識別或語音合成方面應用程式。
SAPI5.1 SDK可以從微軟網站下載:http://www.microsoft.com/speech/download/sdk51/ 需要安裝程式的有Speech SDK 5.1(68M)和5.1 Language Pack (81.5M)。
3. 用C#開發中文TTS應用程式示例
下面通過一個例項來介紹如何利用C# 進行開發語音應用程式,開發環境為:
作業系統: Windows 2000 中文版+ SP3
.Net Framework: 1.0.3705(英文版)
Visual Studio.Net 7.0.9466(英文版)
首先,新建一個C#的Windows Application工程SpeechApp,在開發環境的右邊的解決方案管理器(Solution Explorer)中,新增DotNetSpeech物件庫。右鍵點選"Reference"(參考),選擇"Add Reference"(新增參考),在彈出的檔案選擇對話方塊中找到D:\Program Files\Common Files\Microsoft Shared\Speech\目錄下面找到SAPI.dll,
以下為引用的內容:
//朗讀
private void buttonSynthesis_Click(object sender, System.EventArgs e)
{
try
{
SpeechVoiceSpeakFlags SpFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync;
SpVoice Voice = new SpVoice();
Voice.Speak(this.textBoxText.Text, SpFlags);
}
catch(Exception er)
{
MessageBox.Show("An Error Occured!","SpeechApp", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
//生成聲音檔案(Wav)
private void buttonTTStoWave_Click(object sender, System.EventArgs e)
{
try
{
SpeechVoiceSpeakFlags SpFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync;
SpVoice Voice = new SpVoice();
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "All files (*.*)|*.*|wav files (*.wav)|*.wav";
sfd.Title = "Save to a wave file";
sfd.FilterIndex = 2;
sfd.RestoreDirectory = true;
if (sfd.ShowDialog()== DialogResult.OK)
{
SpeechStreamFileMode SpFileMode = SpeechStreamFileMode.SSFMCreateForWrite;
SpFileStream SpFileStream = new SpFileStream();
SpFileStream.Open(sfd.FileName, SpFileMode, false);
Voice.AudioOutputStream = SpFileStream;
Voice.Speak(txtSpeakText.Text, SpFlags);
Voice.WaitUntilDone(Timeout.Infinite);
SpFileStream.Close();
}
}
catch(Exception er)
{
MessageBox.Show("An Error Occured!","SpeechApp", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
接下來,還要去控制皮膚配置Speech SDK引擎當前所處理語言。開啟"控制皮膚",開啟"語音"配置專案,可以看到在這裡我們可以指定當前可以對何種語言進行識別或者合成,還可以配置相關的硬體裝置以及控制語速。(如圖4)
在"文字-語音轉換"的"語音選擇"組合框中選擇簡體中文(Microsoft Simplified Chinese)。這樣就可以合成漢語文字了。
回到VS.Net,F5編譯執行剛才的應用程式,在文字框裡輸入漢字,戴上耳機,點選"朗讀"按鈕,開始體驗新一代的智慧人機介面吧,呵呵:)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-608077/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C# 實現語音聊天C#
- 30分鐘實現小程式語音識別
- 微信小程式語音同步智慧識別的實現案例微信小程式
- JavaScript的語音識別JavaScript
- 小程式實現語音識別到底要填多少坑?
- 語音識別技術
- 語音識別----音高的處理
- 語音識別方向的資料
- 谷歌再獲語音識別新進展:利用序列轉導來實現多人語音識別和說話人分類谷歌
- 微信小程式使用同聲傳譯實現語音識別功能微信小程式
- 語音識別的最終目標是真正實現人機互動
- Transformers.js實現瀏覽器內WebGPU加速的實時語音識別ORMJS瀏覽器WebGPU
- python語音識別入門及實踐Python
- 樹莓派語音互動--語音輸入識別樹莓派
- C# 10分鐘完成百度語音技術(語音識別與合成)——入門篇C#
- 人工智慧 (08) 語音識別人工智慧
- Swift-語音識別、翻譯Swift
- 語音識別開源專案
- ASR-使用whisper語音識別
- Linux的語音識別軟體(轉)Linux
- C#呼叫DLL實現影像文字識別(OCR)C#
- C#實現驗證碼識別例項C#
- 怎麼關閉win10語音識別 win10如何關閉電腦的語音識別Win10
- Facebook 開源語音識別工具包wav2letter(附實現教程)
- Win10系統如何啟動語音識別 win10啟動語音識別的兩種方法Win10
- 人工智慧之語音識別(ASR)人工智慧
- [譯] 使用 WFST 進行語音識別
- 百度API---語音識別API
- Python語音識別終極指南Python
- Windows XP語音識別技術(轉)Windows
- 【機器學習PAI實踐十二】機器學習實現男女聲音識別分類(含語音特徵提取資料和程式碼)機器學習AI特徵
- 低延遲流式語音識別技術在人機語音互動場景中的實踐
- python langid實現語種識別Python
- 請教初級問題:多語言合作如何實現
- 5 款不錯的開源語音識別/語音文字轉換系統
- 解密:依圖如何一年實現語音識別指標超巨頭玩家解密指標
- 語音喚醒實現
- C 語言Struct 實現執行型別識別 RTTIStruct型別