c# 開(kāi)發(fā)語(yǔ)音識(shí)別程序
AI 平臺(tái):http://ai.baidu.com/
開(kāi)發(fā)工具:vs 2017
準(zhǔn)備工作
1、注冊(cè)百度賬號(hào)
2、登錄百度 AI 開(kāi)發(fā)平臺(tái),http://ai.baidu.com/
3、在控制臺(tái)點(diǎn)擊“百度語(yǔ)音”服務(wù),點(diǎn)擊“創(chuàng)建應(yīng)用”,填寫(xiě)必填項(xiàng),勾選額外接口,點(diǎn)擊立即創(chuàng)建獲取秘鑰。在應(yīng)用列表中查看自己的id

創(chuàng)建自己的項(xiàng)目
1、新建項(xiàng)目
打開(kāi) vs2017,點(diǎn)擊文件,新建項(xiàng)目,選擇 visual C# --> windows 桌面 --> windows 窗體應(yīng)用,選擇自己的項(xiàng)目地址,點(diǎn)擊確定

2、添加 baiduai 開(kāi)發(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 屬性用于選擇了何種文件類(lèi)型,缺省設(shè)置為0,系統(tǒng)取Filter屬性設(shè)置第一項(xiàng)
// * ,相當(dāng)于FilterIndex 屬性設(shè)置為1.如果你編了3個(gè)文件類(lèi)型,當(dāng)FilterIndex =2時(shí)是指第2個(gè).
// */
fdlg.FilterIndex = 2;
///*
// *如果值為false,那么下一次選擇文件的初始目錄是上一次你選擇的那個(gè)目錄,
// *不固定;如果值為true,每次打開(kāi)這個(gè)對(duì)話(huà)框初始目錄不隨你的選擇而改變,是固定的
// */
//fdlg.RestoreDirectory = true;
if (fdlg.ShowDialog() == DialogResult.OK)
{
//textBox1.Text = System.IO.Path.GetFileNameWithoutExtension(fdlg.FileName);
filePath.Text = System.IO.Path.GetFullPath(fdlg.FileName);
}
}
- 開(kāi)始識(shí)別按鈕
// 語(yǔ)音合成按鈕
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; // 若語(yǔ)音較長(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);
}
- 開(kāi)始合成按鈕
調(diào)用 api 中 C# SDK 的語(yǔ)音合成 api
https://ai.baidu.com/docs#/ASR-Online-Csharp-SDK/top
// 開(kāi)始合成按鈕(語(yǔ)音合成功能)
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)成語(yǔ)音文件存放到本地
var client = new Baidu.Aip.Speech.Tts(API_KEY, SECRET_KEY);
// 可選參數(shù)
var option = new Dictionary<string, object>()
{
{"spd", 5}, // 語(yǔ)速
{"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# 開(kāi)發(fā)語(yǔ)音識(shí)別程序的詳細(xì)內(nèi)容,更多關(guān)于c# 語(yǔ)音識(shí)別的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- C#使用DirectX.DirectSound播放語(yǔ)音
- C#實(shí)現(xiàn)文本轉(zhuǎn)語(yǔ)音功能
- C#實(shí)現(xiàn)語(yǔ)音播報(bào)功能
- C# windows語(yǔ)音識(shí)別與朗讀實(shí)例
- c# 實(shí)現(xiàn)語(yǔ)音聊天的實(shí)戰(zhàn)示例
- c# 實(shí)現(xiàn)語(yǔ)音合成
- C#基于UDP實(shí)現(xiàn)的P2P語(yǔ)音聊天工具
- C#實(shí)現(xiàn)語(yǔ)音視頻錄制-附demo源碼
- C#中調(diào)用SAPI實(shí)現(xiàn)語(yǔ)音合成的2種方法
- C#實(shí)現(xiàn)文字轉(zhuǎn)語(yǔ)音功能
相關(guān)文章
Unity實(shí)現(xiàn)毫秒延時(shí)回調(diào)功能
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)毫秒延時(shí)回調(diào)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
淺談c#中config.exe 引發(fā)的一些問(wèn)題
下面小編就為大家分享一篇淺談c#中config.exe 引發(fā)的一些問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
RegexOptions.IgnoreCase正則表達(dá)式替換,忽略大小寫(xiě)
RegexOptions.IgnoreCase正則表達(dá)式替換,忽略大小寫(xiě),需要的朋友可以參考一下2013-03-03
提示出現(xiàn)unresolved external symbol _main的解決方法
提示出現(xiàn)unresolved external symbol _main的解決方法...2007-11-11
C#的通用DbHelper類(lèi)(支持?jǐn)?shù)據(jù)連接池)示例詳解
這篇文章主要介紹了C#的通用DbHelper類(lèi)支持?jǐn)?shù)據(jù)連接池,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03

