最近了解了一下百度语音识别的api,写下一些东西做个记录吧(主要是省的以后忘了。。。。)
1、 登录百度ai开放平台,没有账号的自己去注册,反正不要钱
2、因为语音识别是HTTP/POST 的方式调用的所以平台不重要,但是为了方便调用也是有SDK的,但是离线包主要针对Android平台和iOS平台开放(WTF!!),所以只下载了C#版的(也有Linux C++版正在试,后续可能会写写)。
3、因为是在unity平台下用,所以要去github上下载sdk的源码地址https://github.com/Baidu-AIP/dotnet-sdk
4、直接把包解压到unity工程中的一个目录下,简单粗暴
因为是公司项目贴一些非业务核心代码
(1) string APP_ID = "14***32"; //在百度语音识别中新建的App有自己的下列信息
string API_KEY = "sdNDb*************R0VB1w"; //你自己的api key
string SECRET_KEY = "7hBDD9c****************FPuwvn6g6"; //你自己的secret key
(2)以下是上传函数
IEnumerator AsrData()
{
var data = File.ReadAllBytes(Application.streamingAssetsPath + "/voice/voice.wav");
client.Timeout = 120000; // 若语音较长,建议设置更大的超时时间. ms
var result = client.Recognize(data, "wav", 16000);
yield return result;
string joken = result["result"].ToString();
voice = joken;
}
(3)下面的是将返回的结果合成语音的代码
public void Tts()
{
// 可选参数
var option = new Dictionary()
{
{"spd", 5}, // 语速
{"vol", 7}, // 音量
{"per", 5} // 发音人,4:情感度丫丫童声
};
var result = _ttsClient.Synthesis(voice, option);
if (result.ErrorCode == 0) // 或 result.Success
{
File.WriteAllBytes(Application.dataPath + "/StreamingAssets/voice/result.mp3", result.Data);
}
}
(4) 用unity录音的网上有很多资料自己去查吧
最后说一说我的感觉吧,这个人工智障 人工智能其实还是很牛的,大部分对话都能识别,但是话语越短识别的错误率越高,而且普通话有时候会按照四川话进行识别