Windows Phone自带的语音识别
2020-12-13 13:48
标签:android style blog http io color os ar for WindowsPhone下语音操作包括: 1、程序内部的语音识别,用户可以通过语音识别进行输入或完成相关任务 2、控制程序的语音命令,控制程序启动、打开,并可对页面跳转等进行操作 这篇文章将构建一个简单的语音识别(一般的会将说的话全部识别出来,而利用SRGS语法可识别一句话里面的组成) SRGS(语音识别语法规范),可以定义复杂的语音识别规则.如:识别用同义词替换了词语,漏说了非关键词等。 SRGS须先保存到StorgeFile,再添加到SpeechRecognizer类的属性上。 SRGSGrammar.xml文件 以上可以实现识别"从(“从”可有可无) 北京/上海 到/至/飞往 北京/上海" 可惜的是,出发地和到达地是能够重复的。且只支持“ (从)出发地---到达地” 这样特定的规则 说多了其他的(废)话,就会识别出错。 PS:最近的项目上要添加语音识别功能,要求用的是百度语音识别的SDK/API,可惜前者只支持Android和Iphone 后者虽是各个平台通用,但工作量上大了一点,得先进行录音,之后再通过HttpWebRequest和API传输数据,解析。 Windows Phone自带的语音识别 标签:android style blog http io color os ar for 原文地址:http://www.cnblogs.com/yffswyf/p/4056106.html//按钮点击事件,开始进行语音识别
private async void Button_Click(object sender, RoutedEventArgs e)
{
string message = "";
try
{
SpeechRecognizer speechRecognizer = new SpeechRecognizer();
//以下两个事件就不写了
speechRecognizer.StateChanged += speechRecognizer_StateChanged;//状态改变
speechRecognizer.RecognitionQualityDegrading += speechRecognizer_RecognitionQualityDegrading;//语音质量
//获取内置的SRGS语法文件,如只是简单的识别出将的话,不要这三行
StorageFile file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync("SRGSGrammar.xml");
SpeechRecognitionGrammarFileConstraint grammarFile = new SpeechRecognitionGrammarFileConstraint(file);
speechRecognizer.Constraints.Add(grammarFile);//添加SRGS语法约束
//speechRecognizer.UIOptions.ExampleText = "这里填的是有UI时候的示例";
//分析语音
SpeechRecognitionCompilationResult compilationResult = await speechRecognizer.CompileConstraintsAsync();
if (compilationResult.Status == SpeechRecognitionResultStatus.Success)
{
var result = await speechRecognizer.RecognizeAsync();//无界面的语音识别 若为.RecognizeWithUIAsync(); 则是显示系统本身的识别界面
if (result.Confidence == SpeechRecognitionConfidence.Rejected)
{
message = "识别不到";
}
else
{
resultMessage.Text = result.Text; //识别结果
}
}
}
catch (Exception err)
{
message = "异常信息:" + err.Message + err.HResult;
}
}"1.0" encoding="utf-8" ?>
xmlns:sapi="http://schemas.microsoft.com/Speech/2002/06/SRGSExtensions">
北京到上海、从北京到上海、北京飞往上海、从上海飞往北京、上海到北京等。