7

教程之后,我正在 WP8 中做一个语音识别示例程序。我的代码如下:

public async void SpeechToText_Click(object sender, RoutedEventArgs e)
{
  SpeechRecognizerUI speechRecognition=new SpeechRecognizerUI();
  SpeechRecognitionUIResult recoResult=await speechRecognition.RecognizeWithUIAsync();

if (recoResult.ResultStatus == SpeechRecognitionUIStatus.Succeeded)
  {
    MessageBox.Show(string.Format("You said {0}.", recoResult.RecognitionResult.Text));
  }
}

运行程序后,我总是面对一个声音说“很抱歉,我们现在无法访问网络”。
它需要互联网连接吗?我检查了我的互联网连接,但它很好,所以有什么问题,谁能解释一下?是模拟器问题还是我遗漏了什么?

4

3 回答 3

3

语音识别需要访问 Microsoft 云服务。许多人在让他们的模拟器与支持互联网的应用程序一起工作时遇到问题。这是有关解决该问题的 MSDN 文章。如果我是您,我会验证您实际上可以在模拟器上使用简单的方法访问互联网,WebBrowser并尝试导航到您选择的站点。如果您无法访问外部站点,语音识别将无法在您的模拟器上运行。

于 2013-08-08T18:39:57.310 回答
1

您可能想在模拟器上测试语音识别,就像在普通手机上启动它一样。只需在模拟器底部的 Windows 按钮顶部单击并按住鼠标按钮即可。

在新启动的模拟器上,这应该会显示“许可协议”和使用语音命令的说明,用户必须接受/拒绝许可协议。

然后您可以通过系统测试开放式语音识别,看看您的应用程序或手机/系统是否有问题。

听起来这不是你的问题,但在我处理 WP8 的语音识别时,这个“首次运行许可消息”可能会导致你的应用出现一些问题。即使您没有使用 WP 对话框进行语音识别,该许可通知也会弹出。你特别会在模拟器上看到这一点,因为每次启动它时,它本质上都是一部“新手机”,需要用户接受许可。

于 2013-08-10T06:59:40.100 回答
0

检查以确保您引用了项目中的 AppResLib.dll 文件。(例如,如果您尝试本地化应用程序)有一个已知问题,如果找不到 Dll 文件的本地化版本,则会生成错误消息。

这是我所知道的关于该问题的最佳链接:

http://dotnet-redzone.blogspot.com/2012/12/windows-phone-8speech-recognition.html

于 2013-08-08T18:42:41.183 回答