IEnumerator Recognition(AudioClip clip2Send) { float[] sample = new float[recordClip.samples]; recordClip.GetData(sample, 0); short[] intData = new short[sample.Length]; byte[] byteData = new byte[intData.Length * 2]; for (int i = 0; i < sample.Length; i++) { intData[i] = (short)(sample[i] * short.MaxValue); } Buffer.BlockCopy(intData, 0, byteData, 0, byteData.Length); var result = aipClient.Recognize(byteData, "pcm", 16000); var speaking = result.GetValue("result"); if (speaking == null) { SetRecognizeText(TipsReference.NOTHING_RECORD); StopAllCoroutines(); yield return(null); } string usefulText = speaking.First.ToString(); SetRecognizeText(usefulText); yield return(0); }
// 识别本地文件 public string AsrData(string fileFullName) { var data = File.ReadAllBytes(fileFullName); var result = _asrClient.Recognize(data, "pcm", 16000); return(result.ToString()); }
// 识别本地文件 public string AsrData(string pcmFilePath) { var data = File.ReadAllBytes(pcmFilePath); var result = _asrClient.Recognize(data, "pcm", 16000); return(result.ToString()); }
private void OnClickStopButton() { StartButton.gameObject.SetActive(false); StopButton.gameObject.SetActive(false); DescriptionText.text = "转换中..."; Microphone.End(null); //清空 var data = Asr.ConvertAudioClipToPCM16(_clipRecord); //转换成byte数据 //将byte传入 然后转换 StartCoroutine(_asr.Recognize(data, s => { //转换回掉函数 文本=转换结果不为空且结果长度大于0 否则为“未识别声音” if (s.result == null) { DescriptionText.text = "未识别到声音"; StartButton.gameObject.SetActive(true); } else { RecognitionResult(s.result[0]); } })); }
public void StopAndGetResult() { string result = ""; Microphone.End(null); var data = Asr.ConvertAudioClipToPCM16(_clipRecord); StartCoroutine(_asr.Recognize(data, s => { result = s.result != null && s.result.Length > 0 ? s.result[0] : "未识别到声音"; lastContent = result; if (Eve解析完成 != null && result != "未识别到声音") { Eve解析完成(result); } else if (Eve未检测到声音 != null && result == "未识别到声音") { Eve未检测到声音(); } //Debug.Log("结束录音:" + result); })); if (Eve结束录音 != null) { Eve结束录音(); } }
// 识别本地文件 public void AsrData() { var data = File.ReadAllBytes("语音pcm文件地址"); var result = _asrClient.Recognize(data, "pcm", 16000); Console.Write(result); }
// 识别本地文件 static public void AsrData() { var data = File.ReadAllBytes(@"H:\yank\企业管理系统V1.0\Web\AI\test\16k.wav"); var result = client.Recognize(data, "pcm", 16000); Console.Write(result); }
//语音识别 public void recoVideo() { Thread.Sleep(2000); if (client == null) { var API_KEY = "uz804M95AKkq5OffLCB9GD3q"; var SECRET_KEY = "IZxCofo7vFRYiPKhXqdmh2Da51MrhDKA"; client = new Baidu.Aip.Speech.Asr(API_KEY, SECRET_KEY); } for (int i = 1; i < number; i++) { try { var data = FileUtil.getFileVideo(videoPath, i + ".pcm"); client.Timeout = 12000; // 若语音较长,建议设置更大的超时时间. ms var result = client.Recognize(data, "pcm", 16000, dic); if (result["result"] != null) { String value = result["result"][0].ToString(); tranText(value, i, captionDic); } } catch (Exception e) { Console.WriteLine(e.Message); tranText(e.Message, i, captionDic); } } }
// 识别本地文件 public static AsrResult AsrData(string path) { var data = File.ReadAllBytes(path); var result = AsrClient.Recognize(data, "pcm", 8000); return(result.ToObject <AsrResult>()); }
// 识别本地文件 public void AsrData(string filePath) { var data = File.ReadAllBytes(filePath); var result = _asrClient.Recognize(data, "pcm", 16000); Console.Write(result); }
// 识别本地文件 /// <summary> /// /// </summary> /// <param name="filePath">文件地址</param> /// <param name="fileType">文件类型</param> /// <param name="rate">采样率</param> /// <param name="lan">识别语言,默认lan=zh,设置为lan=en后,返回结果一定为英文</param> public List <string> AsrData(string filePath, string fileType, int rate, string lan) { var data = File.ReadAllBytes(filePath); Dictionary <string, object> para = new Dictionary <string, object>(); para.Add("lan", lan); if ("pcm".Equals(fileType) || "wav".Equals(fileType)) { string API_KEY = "PhUlgrvjGmIaSuPAvn5CWbAE"; string SECRET_KEY = "fDZXemDEyPc6dcAfT8YxkgQuN29kVjwC"; Asr asr = new Asr(API_KEY, SECRET_KEY); JObject result = asr.Recognize(data, fileType, rate, para); List <string> res = new List <string>(); if ("0".Equals(result["err_no"].ToString())) { JArray jaResult = JArray.Parse(result["result"].ToString()); foreach (JToken jt in jaResult) { res.Add(jt.ToString()); } } return(res); } else { return(null); } }
private void btn_Recognize_Click(object sender, EventArgs e) { string fileName = "ffmpeg.exe"; Process p = new Process(); p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.FileName = fileName; p.StartInfo.CreateNoWindow = true; p.StartInfo.Arguments = "-i " + txt_AudioFile.Text + " -y -ar 16000 -ac 1 -acodec pcm_s16le input.wav";//参数以空格分隔,如果某个参数为空,可以传入”” p.Start(); p.WaitForExit(); var data = File.ReadAllBytes("input.wav"); File.Delete("input.wav"); var result = _asrClient.Recognize(data, "pcm", 16000); Console.Write(result); if (result["err_msg"].ToString() == "success.") { rtb_textOut.Text = result["result"].ToString().Replace("[", "").Replace("]", "").Replace("\"", "").Trim(); rtb_SendMsg.Text = rtb_textOut.Text; message_bar.Text = "识别成功"; } else { message_bar.Text = "识别失败"; panel_sample.BackColor = Color.Red; } }
// 识别本地文件 public void AsrData() { var data = File.ReadAllBytes(@"C:\Users\hym\Downloads\aip-speech-csharp-sdk-1.0.0\Speech\re.txt"); var result = _asrClient.Recognize(data, "pcm", 16000); Console.Write(result); }
/// <summary> /// 开始识别按钮 /// /// dev_pid 可选参数 /// 1536 普通话(支持简单的英文识别) 搜索模型 无标点 支持自定义词库 http://vop.baidu.com/server_api /// 1537 普通话(纯中文识别) 输入法模型 有标点 不支持自定义词库 http://vop.baidu.com/server_api /// 1737 英语 无标点 不支持自定义词库 http://vop.baidu.com/server_api /// 1637 粤语 有标点 不支持自定义词库 http://vop.baidu.com/server_api /// 1837 四川话 有标点 不支持自定义词库 http://vop.baidu.com/server_api /// 1936 普通话远场 远场模型 有标点 不支持自定义词库 http://vop.baidu.com/server_api /// 80001语音识别极速版(收费) /// 80001 普通话 极速版输入法模型 有标点 支持自定义词库 http://vop.baidu.com/pro_api /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button2_Click(object sender, EventArgs e) { var type = videoType.Text; var filePath = this.filePath.Text; //设置语音识别应用的账号信息(百度智能云管理中心) APP_ID/API_KEY/SECRET_KEY //demo里的账号 //var APP_ID = "14433392"; //var API_KEY = "C7WMYgLeWv3Wm2yogwv5gD08"; //var SECRET_KEY = "xcvwiwikALBDBaIcGisNQ6aQImtj3qua"; //请更改成自己的账号 string APP_ID = "16982575"; string API_KEY = "0kC4dDwWl3hqo2xz2c4113ZP"; string SECRET_KEY = "8aneCyn9KVAWjGKAIfpcr3vMCFt19kIb"; var client = new Asr(APP_ID, API_KEY, SECRET_KEY); client.Timeout = 120000; // 若语音较长,建议设置更大的超时时间. ms // 可选参数 var options = new Dictionary <string, object> { { "dev_pid", 1536 } }; var result = client.Recognize(File.ReadAllBytes(filePath), type.TrimStart('.'), 16000, options); voiceResult.Text = Convert.ToString(result); result.TryGetValue("result", out JToken resultStr); if (Convert.ToString(resultStr) != "") { voiceResult.Text = Convert.ToString(resultStr); } }
// 识别本地文件 public void AsrData() { var data = System.IO.File.ReadAllBytes(@"C:\Users\Admin\Source\Repos\TTS\AAI.WEB\App_LocalResources\2017年8月8日 16_49_17.wav"); var result = _asrClient.Recognize(data, "wav", 8000); Response.Write(result); }
// 识别本地文件 public async Task <string> AsrData(string fileUrl) { return (await Task.Run(() => { var data = File.ReadAllBytes(fileUrl); var result = _asrClient.Recognize(data, "pcm", 8000); return JsonConvert.DeserializeObject <string[]>(result["result"].ToString())[0]; })); }
private JObject Baidu_RecognizeByAPI(string filePhysicsPath, bool isEn) { Asr _asrClient = new Asr("TmZSp2x7nZXlPIW6GapK45XG", "BuWaLotBu4ho1GnblaMbue3ppryGuOYG "); var data = File.ReadAllBytes(filePhysicsPath); Dictionary <string, object> dic = new Dictionary <string, object>(); dic.Add("lan", "en"); var result = _asrClient.Recognize(data, "WAV", 8000, dic); return(result); }
public string Recognition(byte[] data) { // 可选参数 var options = new Dictionary <string, object> { { "dev_pid", 1536 } }; client.Timeout = 120000; // 若语音较长,建议设置更大的超时时间. ms var result = client.Recognize(data, "pcm", 16000, options); return(result.ToString()); }
public SpeechRecRes SpeechRec(byte[] data) { SpeechRecRes res = null; if (data != null) { JObject result = _asr.Recognize(data, _speechFormat, 16000); res = result?.ToObject <SpeechRecRes>(); } return(res); }
/// <summary> /// 通过文件路径,调用百度语音识别接口返回识别结果 /// </summary> /// <param name="filePath">文件路径</param> /// <param name="audioFormat">音频格式</param> /// <returns></returns> public static JObject AsrData(string filePath, string audioFormat) { try { var data = File.ReadAllBytes(filePath); _asrClient.Timeout = 120000; // 若语音较长,建议设置更大的超时时间. ms var result = _asrClient.Recognize(data, audioFormat, 16000); return(result); } catch (Exception ex) { throw (ex); } }
private void OnClickStopButton() { StartButton.gameObject.SetActive(false); StopButton.gameObject.SetActive(false); DescriptionText.text = "Recognizing..."; Microphone.End(null); var data = Asr.ConvertAudioClipToPCM16(_clipRecord); StartCoroutine(_asr.Recognize(data, s => { message = s.result != null && s.result.Length > 0 ? s.result[0] : "未识别到声音"; char[] messageChar = message.ToCharArray(); int temporary = 1; int chamber = ToDigit(messageChar[(message.IndexOf("病房") - temporary)]); for (temporary = 1; temporary < message.IndexOf("病房");) { //如病房前面还有字 第六个病房 etc. 接着往前找 if (chamber == 0) { chamber = ToDigit(message[(message.IndexOf("病房") - (++temporary))]); } else if (chamber != 0) {//找到了 break; } } message2 = s.result != null && s.result.Length > 0 ? s.result[0] : "未识别到声音"; //0none,1开灯2关灯3消毒4通风 int operate = 0; string[] operates = { "", "开灯", "关灯", "消毒", "通风" }; for (int i = 1; i <= 4;) { int t = message2.IndexOf(operates[i]); if (t == (-1)) { i++; } else { operate = i; break; } }//用indexof寻找关键字,没找到返回-1 找到了赋给operate // chamber 1,2,3,4,5,6,7,8 // operate 1,2,3,4 DescriptionText.text = chamber.ToString() + "," + operate; StartButton.gameObject.SetActive(true); })); }
private void StopRecording() { //此时判断是否处于说话状态,如果是说话状态则将按钮复位,并上传说话内容 if (StartSpeech) { //上传内容 Log.Debug("麦克风停止录音"); Microphone.End(null); //转换格式 var data = Asr.ConvertAudioClipToPCM16(clipRecord); asr.Recognize(data, s => { Log.Debug("进来了"); if (s.result == null && s.result.Length < 0) { Log.Debug("结果为空,表示麦克风未识别到声音"); //提示有问题,复位 entry2.callback.AddListener(N); StartSpeech = false; } else { //有结果,发送给机器人进行语音回复 tts.Synthesis(s.result[0], r => { if (r.Success) { //正常播放 Log.Debug("合成成功,正在播放,声音有几秒:" + audioSource.clip.length); audioSource.clip = r.clip; audioSource.Play(); //复位 entry2.callback.AddListener(N); StartSpeech = false; } else { //这是出问题了 Debug.Log(s.err_msg); //提示有问题,复位 entry2.callback.AddListener(N); StartSpeech = false; } }); } }); } }
private void OnClickStopButton() { StartButton.gameObject.SetActive(false); StopButton.gameObject.SetActive(false); DescriptionText.text = "Recognizing..."; Microphone.End(null); Debug.Log("end record"); var data = Asr.ConvertAudioClipToPCM16(_clipRecord); StartCoroutine(_asr.Recognize(data, s => { DescriptionText.text = s.result[0]; StartButton.gameObject.SetActive(true); })); }
private void OnClickStopButton() { StartButton.gameObject.SetActive(false); StopButton.gameObject.SetActive(false); DescriptionText.text = "Recognizing..."; Microphone.End(null); Debug.Log("[WitBaiduAip demo]end record"); var data = Asr.ConvertAudioClipToPCM16(_clipRecord); ReplayButton.gameObject.SetActive(true); StartCoroutine(_asr.Recognize(data, s => { DescriptionText.text = s.result != null && s.result.Length > 0 ? s.result[0] : "未识别到声音"; StartButton.gameObject.SetActive(true); })); }
public static string GetText(string filename) { if (File.Exists(filename) == false) { return(null); } var data = File.ReadAllBytes(filename); client.Timeout = 120000; // 若语音较长,建议设置更大的超时时间. ms Dictionary <string, object> dic = new Dictionary <string, object>(); dic.Add("dev_pid", 1737); var result = client.Recognize(data, "wav", 16000, dic); return(result["result"][0].ToString()); }
public static string GetSpeechString(byte[] data) { // 设置APPID/AK/SK string APP_ID = "16787165"; string API_KEY = "k7s2FUxEx2xuVFy6B0VKRH5C"; string SECRET_KEY = "no8gKK05u6Hs2FVCuTGDrXPVYEXM1EpA "; var client = new Asr(APP_ID, API_KEY, SECRET_KEY); // 可选参数 var options = new Dictionary <string, object> { { "dev_pid", 1536 } }; client.Timeout = 120000; // 若语音较长,建议设置更大的超时时间. ms var result = client.Recognize(data, "wav", 16000, options).ToObject <BaiduSpeechResult>(); return(result.result.FirstOrDefault()); }
IEnumerator Timer() { while (true) { yield return(new WaitForSeconds(inteval)); Microphone.End(null); // print(_clipRecord.length); updateClips(); AudioClip currentClip = AudioClipHelper.Combine((AudioClip[])_audioClips.ToArray(typeof(AudioClip))); // AudioClip currentClip = AudioClipHelper.Combine(_audioClips); // AudioClip currentClip = (AudioClip) _audioClips[0]; var data = Asr.ConvertAudioClipToPCM16(currentClip); StartCoroutine(_asr.Recognize(data, s => { String text = s.result != null && s.result.Length > 0 ? s.result[0] : "未识别到声音"; Debug.Log(DateTime.Now + ":" + text); })); } }
//语音识别 private void button4_Click(object sender, EventArgs e) { //设置语音识别应用的账号信息(百度智能云管理中心) APP_ID/API_KEY/SECRET_KEY //demo里的账号 //var APP_ID = "14433392"; //var API_KEY = "C7WMYgLeWv3Wm2yogwv5gD08"; //var SECRET_KEY = "xcvwiwikALBDBaIcGisNQ6aQImtj3qua"; //请更改成自己的账号 string APP_ID = "16982575"; string API_KEY = "0kC4dDwWl3hqo2xz2c4113ZP"; string SECRET_KEY = "8aneCyn9KVAWjGKAIfpcr3vMCFt19kIb"; var client = new Asr(APP_ID, API_KEY, SECRET_KEY); var videoPath = comboBox4.Text; var type = Path.GetExtension(videoPath); var data = File.ReadAllBytes(videoPath); //dev_pid 可选参数 //1536 普通话(支持简单的英文识别) 搜索模型 无标点 支持自定义词库 http://vop.baidu.com/server_api //1537 普通话(纯中文识别) 输入法模型 有标点 不支持自定义词库 http://vop.baidu.com/server_api //1737 英语 无标点 不支持自定义词库 http://vop.baidu.com/server_api //1637 粤语 有标点 不支持自定义词库 http://vop.baidu.com/server_api //1837 四川话 有标点 不支持自定义词库 http://vop.baidu.com/server_api //1936 普通话远场 远场模型 有标点 不支持自定义词库 http://vop.baidu.com/server_api //80001语音识别极速版(收费) //80001 普通话 极速版输入法模型 有标点 支持自定义词库 http://vop.baidu.com/pro_api var options = new Dictionary<string, object> { {"dev_pid", 1536} }; client.Timeout = 120000; // 若语音较长,建议设置更大的超时时间. ms var result = client.Recognize(data, type.TrimStart('.'), 16000, options); comboBox9.Text = Convert.ToString(result); result.TryGetValue("result", out JToken resultStr); if (Convert.ToString(resultStr) != "") { comboBox9.Text = Convert.ToString(resultStr); } }
/// <summary> /// 音频文件转语音 /// </summary> /// <param name="filepath"></param> /// <returns></returns> public static string BaiduTranslateToText(string filepath, string language, string para_HZ) { string returnStr = ""; if (string.IsNullOrEmpty(filepath)) { returnStr = "文件不存在"; } else { string format = Path.GetExtension(filepath).Substring(1); int rate = int.Parse(para_HZ); string cuid = para_API_id; FileStream fs = new FileStream(filepath, FileMode.Open); byte[] voice = new byte[fs.Length]; fs.Read(voice, 0, voice.Length); fs.Close(); Dictionary <string, object> options = new Dictionary <string, object>(); if (language == "zh") { options.Add("dev_pid", 1536); } else { options.Add("dev_pid", 1737); } Asr asr = new Asr(Api_Key, Secret_Key); var result = asr.Recognize(voice, format, rate, options); JObject obj = JObject.Parse(Newtonsoft.Json.JsonConvert.SerializeObject(result)); if (obj["err_msg"].Value <string>() == "success.") { returnStr = obj["result"][0].ToString(); } else { returnStr = "3301-百度语音转文字出错"; } } return(returnStr); }
public string Baidu_RecognizeByAPI(string filePhysicsPath) { new FFmpegSerializeOperator().ConvertToAmr(Parameters.CurrentDirectory, filePhysicsPath, filePhysicsPath); Asr _asrClient = new Asr("TmZSp2x7nZXlPIW6GapK45XG", "BuWaLotBu4ho1GnblaMbue3ppryGuOYG "); var data = File.ReadAllBytes(filePhysicsPath); Dictionary <string, object> dic = new Dictionary <string, object>(); dic.Add("lan", "en"); var result = _asrClient.Recognize(data, "WAV", 8000); string err_msg = result.GetValue("err_msg").ToString(); string content = string.Empty; if (string.Equals(err_msg, "success.")) { content = result.GetValue("result").ToString(); } if (!string.Equals("success.", err_msg) || content.Split('"').Length >= 5) { result = Baidu_RecognizeByAPI(filePhysicsPath, true); } return(result.GetValue("result").ToString()); }