第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 用Visual studio C#语言 语音识别及合成

用Visual studio C#语言 语音识别及合成

时间:2024-02-24 02:06:41

相关推荐

用Visual studio  C#语言 语音识别及合成

用Visual studio ,C#语言,语音识别及合成

本人以前从没有接触过代码,所以下面写的内容非常基础简单,请大佬勿喷。主要是为了记录一下刚接触代码三天的收获——windows环境下语音合成和语音识别

一、Visual studio community 安装

Visual studio community 安装,直接去百度搜就好,在官网,进行下载安装,不需要任何教程自己就可以完成。(不像SolidWorks,Proe,MATLAB,Ansys,,要看教程,破解,汉化),个人建议

不用汉化Visual studio community,我就安装在C盘了,19个G。

你也可以把一些组件按在其他盘。

VS社区版是款非常好用的开发工具,软件除了大多数IDE提供的标准编辑器和调试器之外,还包括编译器、代码完成工具、图形设计器和许多其他功能,以简化软件开发过程,能够适用于 Android、iOS、Windows、Web、云开发。

二、开始创作语音识别及合成项目

2.1既然可以识别语音,肯定有一个语音的对比库,所以要调用百度人工智能开放平台

1、注册百度账号

2、登录百度 AI 开发平台,/

3、在控制台点击“百度语音”服务,点击“创建应用”

4、重点,重点,重点,获取秘钥。在应用列表中查看,我们要使用三个重要的信息(APP_ID, API_KEY, SECRET_KEY),

Visual studio community 开始写代码

打开 vs,点击文件,新建项目,选择 visual C# --> windows 桌面 --> windows 窗体应用,注意用C#语言,选择自己的项目地址,点击确定

接下来呢,就是调用控件了,主要用到了 Textbox button,自己去试试就会啦

下面是我自己做的

textbox 不需要设置,对于button,不仅要改其中文本,还有Click事件,写其中的代码

在写代码前必须,必须要加入两个SDK文件,他们的格式为 .dll

using Baidu.Aip.Speech;using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace SpeechDemo1{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Button1_Click(object sender, EventArgs e){if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)//现在开始第一个buttton的代码,if语句表示“使跳出的对话框 表现为 Windows系统搜索的结果”,//并需要用户点击OK确定,则会进入下一行{}种的代码, 注意if后面加括号,且没有分号,冒号。{//将刚打开的文件夹名称的路径 赋值给 testbox1的文本textBox1.Text = openFileDialog1.FileName;//接着,信息框 提示 (“打开文件成功”)MessageBox.Show("打开文件成功");}}private void OpenFileDialog1_FileOk(object sender, CancelEventArgs e){}private void Button2_Click(object sender, EventArgs e){// 好了,开始第二个button的click的代码编写,设置APPID/AK/SK//这个button点击,要实现语音识别,需要百度AI库的帮助,解决方案-引用-添加本地文件//AiSDK.dll Newton.soft.josn.dllvar APP_ID = "17335080";var API_KEY = "OpQ0Ovm6qOqGuQGtSAcsnU8Q";var SECRET_KEY = "Yix5uRXm7CHqti554muXvkE4SiIEKfUm";//定义client为 new asr,使用时需要 APP_ID, API_KEY, SECRET_KEY三个数据,用来访问百度数据库//上面需要using Baidu.Aip.Speech.Asr,否则不会使用该函数var client = new Asr(APP_ID, API_KEY, SECRET_KEY);client.Timeout = 60000; // 修改超时时间//定义data 需要打开文件的 地址 =(该地址为二进制)@使得初始化符号在"前面加//??问题是, 其实不太好,上面无论打开的是什么文件最后其实都是对这个文件的语音识别???var data = File.ReadAllBytes(@"C:\Users\Administrator\Desktop\16k.pcm");// 可选参数//定义一个options,来调用baidu数据库的dictionaryvar options = new Dictionary<string, object>{{"dev_pid", 1536}};client.Timeout = 120000; // 若语音较长,建议设置更大的超时时间. ms//定义result,开始语音识别操作 (bytes字节-data地址,strings字符串-format格式,int整数—识别时间,使用的词典)var result = client.Recognize(data, "pcm", 16000, options);Console.Write(result);textBox2.Text = Convert.ToString(result);}private void TextBox2_TextChanged(object sender, EventArgs e){}private void Button3_Click(object sender, EventArgs e){//button3语音合成,只需要api-key,secret-key,使用tts数据库var API_KEY = "OpQ0Ovm6qOqGuQGtSAcsnU8Q";var SECRET_KEY = "Yix5uRXm7CHqti554muXvkE4SiIEKfUm";var client = new Tts(API_KEY, SECRET_KEY);/*如果文本框为空 则返回若输入了文字,那么定义这串文字为 string格式s再次调用dictionary*/if (textBox3.Text == string.Empty){return;}string s = textBox3.Text;var option = new Dictionary<string, object>(){{"spd", 5}, // 语速{"vol", 10}, // 音量 {"per", 0} // 发音人,4:情感度丫丫童声 };var result = client.Synthesis(s, option);if (result.Success){File.WriteAllBytes("D:\\result.mp3", result.Data);MessageBox.Show(@"音频文件以保存至路径 D:\result.mp3 中,请查看。");}}}}

开始运行吧,这样你就成功的完成了一个,Windows应用程序,他会自自动成 .exe应用程序,也可以分享给别人使用

结束啦,这是第一次敲代码,下次再见

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。