0

我正在尝试在我的科尔多瓦应用程序中使用 annyang 进行语音识别。我正在关注TalaterAlex 的示例,但我无法让它发挥作用。

我注意到它不会要求我使用我的麦克风获得许可。

我正在笔记本电脑的 Chrome 中测试代码,而不是在设备中。

我的代码是:

<html>
<head>
    <meta charset="utf-8" />
    <meta name="format-detection" content="telephone=no" />
    <meta name="msapplication-tap-highlight" content="no" />
    <!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
    <link rel="stylesheet" type="text/css" href="css/index.css" />
    <title>Hello World</title>
    <!-- <script src="js/speakClient.js"></script> -->
    <script src="http://cdnjs.cloudflare.com/ajax/libs/annyang/1.6.0/annyang.min.js"></script>
    <script src="js/annyang.min.js"></script>
</head>
<body>
    <div class="app">
        <h1>Apache Cordova</h1>
    </div>
</body>
<script type="text/javascript" src="js/annyang.js"></script>

这是我的 JavaScript 代码:

// Language select
annyang.setLanguage('es-ES');

if (annyang) {

  var sayThis = function(repeat) {
    alert(repeat);
  }

  // Let's define a command.
  var commands = {
    '*repeat': sayThis
  };
  // Debug info for the console
  annyang.debug();

  // Initialize annyang with our commands
  annyang.init(commands);

  // Start listening.
  annyang.start();
}
else {
  alert("No annyang");
}

请告诉我我是否遗漏了一些东西(如果无法使其在 cordova 应用程序中工作,我如何在旨在在 iPhone 中工作的 cordova 应用程序中使用语音识别?)

4

1 回答 1

3

我能够让 annyang.js 在我的 Android 设备上的 Ionic (Cordova) 应用程序中工作。真是太神奇了。

问题在于,对于 Android 平台,Cordova 默认捆绑了一个 Android 浏览器。但是,Chrome 是目前唯一支持语音识别 API 的浏览器。http://caniuse.com/#feat=speech-recognition

关键是通过 Crosswalk 捆绑Chromium webview。由于 Chrome 在 iOS 上不可用,因此此解决方案不适用于 iOS。对于 Ionic 应用程序,键入以下命令以添加 Crosswalk。

新项目:

npm install ionic -g
ionic start my_app
cd my_app
ionic browser add crosswalk
ionic run android 

以前的离子项目:

npm install ionic -g
cd existing_app
ionic browser add crosswalk
ionic run android

参考:http ://blog.ionic.io/crosswalk-comes-to-ionic/

然后安装“cordova-media-plugin”获取访问 Android 的 RECORD_AUDIO 的权限。https://github.com/apache/cordova-plugin-media

cordova plugin add cordova-plugin-media

就这样。

在旁注中,您可能想尝试使用 Annyang 的 Angular 包装器(版本 1.5),此处提供:https ://github.com/levithomason/angular-annyang

上述所有链接均于 2015 年 10 月 22 日访问

于 2015-10-22T00:40:40.303 回答