c#使用百度智能云,文字识别、语音识别demo总结

c#调用流程如下

        首先,需要在百度智能云平台领取免费资源,并创建应用,此时会得到AppID,API Key和Secret Key这三个参数,在调用该应用时需要使用这三个参数。

c#使用百度智能云,文字识别、语音识别demo总结_第1张图片

 在VS2019中,选择项目,管理NuGet程序包,搜索并安装Baidu.Ai

c#使用百度智能云,文字识别、语音识别demo总结_第2张图片

在文件开头引用有关内容

图像文字识别简单的代码段

var apiKey = "";
var apiSecretKey = "";
Ocr ocr = new Ocr(apiKey, apiSecretKey) { Timeout = 60000 };
byte[] bt = File.ReadAllBytes(imagePath);
JObject jobject = ocr.GeneralBasic(bt);

 图像分类代码段

var apiKey = "";
var apiSecretKey = "";
ImageClassify cla = new ImageClassify(apiKey, apiSecretKey) { Timeout = 60000 };
byte[] bt = File.ReadAllBytes(imagePath);
JObject jobject = cla.AdvancedGeneral(bt);

语音识别代码段

var data = File.ReadAllBytes(pathname);
var AppID = "";
var apiKey = "";
var apiSecretKey = "";
var language = 1537;    //普通话模型
var options = new Dictionary
{
	{"dev_pid", language}
};
Baidu.Aip.Speech.Asr asr = new Baidu.Aip.Speech.Asr(AppID, apiKey, apiSecretKey) { Timeout = 60000};
//JObject Asr.Recognize(byte[] data, string format, int rate, [Dictionary options options = null])
var jobject = asr.Recognize(data, "pcm", 16000, options);

语音识别需要注意的地方(参考官方文档):

        1、支持的语音格式:原始 PCM 的录音参数必须符合 16k、8k 采样率、16bit 位深、单声道,支持的格式有:pcm(不压缩)、wav(不压缩,pcm编码)、amr(压缩格式)。

        2、目前系统支持的语音时长上限为60s,请不要超过这个长度,否则会返回错误。

dev_pid参数列表:

1537 普通话(纯中文识别) 语音近场识别模型 有标点 支持自定义词库
1737 英语 无标点 不支持自定义词库
1637 粤语 有标点 不支持自定义词库
1837 四川话 有标点 不支持自定义词库
1936 普通话远场 远场模型 有标点 不支持


针对语音识别的格式限制,需要对现有音频做格式转化。我这里使用ffmpeg工具。

        首先在官网下载exe文件,完成后解压,并放在固定目录下不要再移动。

c#使用百度智能云,文字识别、语音识别demo总结_第3张图片

         打开高级系统设置配置环境变量,将在系统变量找到Path,添加bin文件夹的路径。之后就可以在cmd命令行中直接调用ffmpeg、ffprobe和ffplay。

c#使用百度智能云,文字识别、语音识别demo总结_第4张图片c#使用百度智能云,文字识别、语音识别demo总结_第5张图片

 ffmpeg命令格式参考官方文档。

        查看音频文件信息的命令如下:

ffprobe -show_data 音频文件

        将MP3格式转化为pcm,16000hz,单通道的命令如下:

ffmpeg -y -i 原始文件.mp3 -acodec pcm_s16le -f s16le -ac 1 -ar 16000 输出文件.pcm

        在音频文件中截取部分,命令如下(-ss为开始时间,-t为持续时间):

ffmpeg -y -i 输入文件.mp3 -ss 00:00:00 -t 00:01:00 输出文件.mp3

 


在c#中调用命令行执行ffmpeg工具

Process CmdProcess = new Process();
CmdProcess.StartInfo.UseShellExecute = false;
CmdProcess.StartInfo.RedirectStandardInput = true;
CmdProcess.StartInfo.RedirectStandardOutput = true;
CmdProcess.StartInfo.RedirectStandardError = true;
CmdProcess.StartInfo.CreateNoWindow = true;
CmdProcess.StartInfo.FileName = "cmd.exe";
CmdProcess.Start();//执行  
string order = "";
CmdProcess.StandardInput.WriteLine(order + "&exit"); //向cmd窗口发送输入信息  
CmdProcess.StandardInput.AutoFlush = true;  //提交  
CmdProcess.WaitForExit();//等待程序执行完退出进程  
string result = CmdProcess.StandardOutput.ReadToEnd() + CmdProcess.StandardError.ReadToEnd();//输出 
CmdProcess.Close();//结束 

        最后,只需要简单制作一个界面,将各个功能结合应用起来,就可以了。

c#使用百度智能云,文字识别、语音识别demo总结_第6张图片

 

你可能感兴趣的:(语音识别,c#,百度,人工智能,图像识别)