Angular 4 使用 Web 语音 API

Angular 4 using Web Speech API

我尝试将 Web 语音 API 接口 (https://github.com/mdn/web-speech-api/) 与 angular(版本 4.25)和 asp 核心网络服务器一起使用。全部由 visual studio 2017(版本 15.7.1)构建。我添加了 @types/webspeechapi 类型定义到 package.json(版本 0.0.29)

我的 (angular) 组件看起来像:

 /// <reference path="../../../../node_modules/@types/webspeechapi/index.d.ts" />
    import { Component } from '@angular/core';

    @Component({
        selector: 'home',
        templateUrl: './home.component.html'
    })
    export class HomeComponent {

        constructor() {

            var recognition = new SpeechRecognition();
            var speechRecognitionList = new SpeechGrammarList();
...

编译器在设计时没有错误。但是,如果我尝试打开该页面,我会收到一条 500 错误消息 NodeInvocationException: Uncaught (in promise): ReferenceError: SpeechRecognition is not defined

vs中web-server的console log是一样的

我想使用类型定义,但为什么以及谁尝试解决 输入 SpeechRecognition?

Jonathan 的提示是正确的,Chrome 支持此功能,但仅限于 webkit-prefixe。

所以我插入一个检查

var reg: SpeechRecognition;
var typ = typeof SpeechRecognition;

reg = typ === "undefined" ? new webkitSpeechRecognition() :
                                new SpeechRecognition();

这适用于 FF 和 Chrome。