c# 開發(fā)語音識(shí)別程序
AI 平臺(tái):http://ai.baidu.com/
開發(fā)工具:vs 2017
準(zhǔn)備工作
1、注冊(cè)百度賬號(hào)
2、登錄百度 AI 開發(fā)平臺(tái),http://ai.baidu.com/
3、在控制臺(tái)點(diǎn)擊“百度語音”服務(wù),點(diǎn)擊“創(chuàng)建應(yīng)用”,填寫必填項(xiàng),勾選額外接口,點(diǎn)擊立即創(chuàng)建獲取秘鑰。在應(yīng)用列表中查看自己的id
創(chuàng)建自己的項(xiàng)目
1、新建項(xiàng)目
打開 vs2017,點(diǎn)擊文件,新建項(xiàng)目,選擇 visual C# --> windows 桌面 --> windows 窗體應(yīng)用,選擇自己的項(xiàng)目地址,點(diǎn)擊確定
2、添加 baiduai 開發(fā)包
點(diǎn)擊引用 --> 管理 nuGet 程序包,搜索 baiduai,點(diǎn)擊下載
3、UI 設(shè)計(jì)
直接拖動(dòng)即可,生成界面如下
4、后臺(tái)功能實(shí)現(xiàn)
- 選擇文件按鈕
private void button1_Click(object sender, EventArgs e) { OpenFileDialog fdlg = new OpenFileDialog(); fdlg.Title = "C# Corner Open File Dialog"; //fdlg.InitialDirectory = @"c:/"; //@是取消轉(zhuǎn)義字符的意思 //fdlg.Filter = "All files(*.*)|*.*|All files(*.*)|*.* "; ///* // * FilterIndex 屬性用于選擇了何種文件類型,缺省設(shè)置為0,系統(tǒng)取Filter屬性設(shè)置第一項(xiàng) // * ,相當(dāng)于FilterIndex 屬性設(shè)置為1.如果你編了3個(gè)文件類型,當(dāng)FilterIndex =2時(shí)是指第2個(gè). // */ fdlg.FilterIndex = 2; ///* // *如果值為false,那么下一次選擇文件的初始目錄是上一次你選擇的那個(gè)目錄, // *不固定;如果值為true,每次打開這個(gè)對(duì)話框初始目錄不隨你的選擇而改變,是固定的 // */ //fdlg.RestoreDirectory = true; if (fdlg.ShowDialog() == DialogResult.OK) { //textBox1.Text = System.IO.Path.GetFileNameWithoutExtension(fdlg.FileName); filePath.Text = System.IO.Path.GetFullPath(fdlg.FileName); } }
- 開始識(shí)別按鈕
// 語音合成按鈕 private void button2_Click(object sender, EventArgs e) { string value = this.videoType.Text; String filePath = this.filePath.Text; // 設(shè)置APPID/AK/SK String APP_ID = "14433392"; String API_KEY = "C7WMYgLeWv3Wm2yogwv5gD08"; String SECRET_KEY = "xcvwiwikALBDBaIcGisNQ6aQImtj3qua"; var client = new Asr(APP_ID, API_KEY, SECRET_KEY); client.Timeout = 60000; // 修改超時(shí)時(shí)間 client.Timeout = 120000; // 若語音較長(zhǎng),建議設(shè)置更大的超時(shí)時(shí)間. ms FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read); byte[] buffur = new byte[fs.Length]; try { fs.Read(buffur, 0, (int)fs.Length); } catch (Exception ex) { Console.Write(ex.StackTrace); } finally { if (fs != null) { //關(guān)閉資源 fs.Close(); } } var result = client.Recognize(buffur, value, 16000); Convert.ToString(result); JToken resultStr = null; result.TryGetValue("result", out resultStr); Console.WriteLine("aToken===>"+ resultStr); voiceResult.Text = Convert.ToString(resultStr); Console.Write(result); }
- 開始合成按鈕
調(diào)用 api 中 C# SDK 的語音合成 api
https://ai.baidu.com/docs#/ASR-Online-Csharp-SDK/top
// 開始合成按鈕(語音合成功能) private void synthesisButton_Click(object sender, EventArgs e) { String APP_ID = "14433392"; String API_KEY = "C7WMYgLeWv3Wm2yogwv5gD08"; String SECRET_KEY = "xcvwiwikALBDBaIcGisNQ6aQImtj3qua"; // 獲取輸入框的值 String value = this.Speech_Synthesis.Text; // 將 value 轉(zhuǎn)成語音文件存放到本地 var client = new Baidu.Aip.Speech.Tts(API_KEY, SECRET_KEY); // 可選參數(shù) var option = new Dictionary<string, object>() { {"spd", 5}, // 語速 {"vol", 7}, // 音量 {"per", 3} // 發(fā)音人,4:情感度丫丫童聲 }; var result = client.Synthesis(value, option); try { if (result.ErrorCode == 0) { // 或 result.Success File.WriteAllBytes("E:/prepared/北航/07_工程實(shí)踐--AI方向/作業(yè)/WindowsFormsApplication1/WindowsFormsApplication1/tmp.mp3", result.Data); } } catch (Exception ex) { Console.Write(ex.StackTrace); } Play(); }
源碼地址:https://github.com/zhongsb/vo...
以上就是c# 開發(fā)語音識(shí)別程序的詳細(xì)內(nèi)容,更多關(guān)于c# 語音識(shí)別的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Unity實(shí)現(xiàn)毫秒延時(shí)回調(diào)功能
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)毫秒延時(shí)回調(diào)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09RegexOptions.IgnoreCase正則表達(dá)式替換,忽略大小寫
RegexOptions.IgnoreCase正則表達(dá)式替換,忽略大小寫,需要的朋友可以參考一下2013-03-03提示出現(xiàn)unresolved external symbol _main的解決方法
提示出現(xiàn)unresolved external symbol _main的解決方法...2007-11-11C#的通用DbHelper類(支持?jǐn)?shù)據(jù)連接池)示例詳解
這篇文章主要介紹了C#的通用DbHelper類支持?jǐn)?shù)據(jù)連接池,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03