将Annyang.js语音识别与Angularjs集成

时间:2013-10-12 04:51:38

标签: javascript angularjs data-binding speech-recognition

我正在尝试整合Annyang.jsAngular.js

我正在尝试使用DOM制作Annyang.js bind(Angular样式)的结果。一些想法可能是使用角度服务,如$ watch,$ apply,$ digest,或创建指令/工厂/提供商???我不知所措。帮助将不胜感激。

到目前为止,它理解VoiceCtrl范围内的命令,但它不绑定到$ scope.said

使用Javascript:

var SpeechApp = angular.module('SpeechApp', []);

function VoiceCtrl($scope) {

  $scope.said='';

  $scope.helloWorld = function() {
    $scope.said = "Hello world!";
  }

  $scope.commands = {
    'hello (world)': $scope.helloWorld,
  };

  annyang.debug();
  annyang.init($scope.commands);
  annyang.start();
}

HTML:

<body ng-app="Voice" ng-controller="VoiceCtrl">
    <p>{{said}}</p>
</body>

3 个答案:

答案 0 :(得分:1)

看起来你错过了scope.$apply()。这需要允许angular更新所有绑定,因为annyang.js将在角度上下文之外工作。

尝试用

替换你的命令
'Hello (world)': function() {
    $scope.$apply($scope.helloWorld);
});

答案 1 :(得分:0)

此外,您在HTML中调用模块“SpeechApp”,在HTML中调用ng-app =“Voice”。

建议使用此HTML:

  <body ng-app="SpeechApp">
    <div ng-controller="VoiceCtrl">
      <p>Hi: {{said}}</p>
    </div>
  </body>

http://plnkr.co/edit/QIWwhS?p=preview

答案 2 :(得分:0)