開發工具:vs 2017git
AI 平臺:http://ai.baidu.com/github
一、註冊百度帳號windows
二、登陸百度 AI 開發平臺,http://ai.baidu.com/api
三、在控制檯點擊「百度語音」服務,點擊「建立應用」,填寫必填項,勾選額外接口,點擊當即建立獲取祕鑰。在應用列表中查看本身的idide
用 360 軟件管家安裝 vs2017 工具
打開 vs2017,點擊文件,新建項目,選擇 visual C# --> windows 桌面 --> windows 窗體應用,選擇本身的項目地址,點擊肯定開發工具
點擊引用 --> 管理 nuGet 程序包,搜索 baiduai,點擊下載this
直接拖動便可,生成界面以下spa
選擇文件按鈕設計
private void button1_Click(object sender, EventArgs e) { OpenFileDialog fdlg = new OpenFileDialog(); fdlg.Title = "C# Corner Open File Dialog"; //fdlg.InitialDirectory = @"c:/"; //@是取消轉義字符的意思 //fdlg.Filter = "All files(*.*)|*.*|All files(*.*)|*.* "; ///* // * FilterIndex 屬性用於選擇了何種文件類型,缺省設置爲0,系統取Filter屬性設置第一項 // * ,至關於FilterIndex 屬性設置爲1.若是你編了3個文件類型,當FilterIndex =2時是指第2個. // */ fdlg.FilterIndex = 2; ///* // *若是值爲false,那麼下一次選擇文件的初始目錄是上一次你選擇的那個目錄, // *不固定;若是值爲true,每次打開這個對話框初始目錄不隨你的選擇而改變,是固定的 // */ //fdlg.RestoreDirectory = true; if (fdlg.ShowDialog() == DialogResult.OK) { //textBox1.Text = System.IO.Path.GetFileNameWithoutExtension(fdlg.FileName); filePath.Text = System.IO.Path.GetFullPath(fdlg.FileName); } }
開始識別按鈕
// 語音合成按鈕 private void button2_Click(object sender, EventArgs e) { string value = this.videoType.Text; String filePath = this.filePath.Text; // 設置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; // 修改超時時間 client.Timeout = 120000; // 若語音較長,建議設置更大的超時時間. 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) { //關閉資源 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); }
開始合成按鈕
調用 api 中 C# SDK 的語音合成 api
https://ai.baidu.com/docs#/AS...
// 開始合成按鈕(語音合成功能) 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 轉成語音文件存放到本地 var client = new Baidu.Aip.Speech.Tts(API_KEY, SECRET_KEY); // 可選參數 var option = new Dictionary<string, object>() { {"spd", 5}, // 語速 {"vol", 7}, // 音量 {"per", 3} // 發音人,4:情感度丫丫童聲 }; var result = client.Synthesis(value, option); try { if (result.ErrorCode == 0) { // 或 result.Success File.WriteAllBytes("E:/prepared/北航/07_工程實踐--AI方向/做業/WindowsFormsApplication1/WindowsFormsApplication1/tmp.mp3", result.Data); } } catch (Exception ex) { Console.Write(ex.StackTrace); } Play(); }
源碼地址:https://github.com/zhongsb/vo...
個人博客即將同步至騰訊雲+社區,邀請你們一同入駐:https://cloud.tencent.com/dev...