gpt4 book ai didi

angular - SpeechRecognition 在 Windows 10 中的 Chrome 版本 60 上始终被阻止

转载 作者:行者123 更新时间:2023-12-04 16:09:25 24 4
gpt4 key购买 nike

我已经使用 webkitSpeechRecognition 构建了一个应用程序。录制音频很好,一切正常,直到 chrome 更新到 60。

该错误仅发生在 Windows 10 上,但不会发生在具有相同更新的 MacOS 上。 (将 Chrome 59 更新到 Chrome 60)

当我尝试使用库时,它给出错误“不允许”。我已管理 Chrome 设置并将其设置为始终请求许可,但结果转到始终阻止。因此 Chrome 上的错误仍然存​​在,并且 chrome 不允许该应用使用麦克风设置。

在 Chrome 59 (Windows 10) 上,不会发生这种行为!

这是用于调用 api 的 Angular 语音服务:

import { UserService } from './user.service';
import { Injectable, NgZone } from '@angular/core';
import { Observable } from 'rxjs/Rx';


interface IWindow extends Window {
webkitSpeechRecognition: any;
SpeechRecognition: any;
}

@Injectable()
export class SpeechRecognitionService {
speechRecognition: any;
_me: any;

constructor(private userService: UserService, private zone: NgZone) {
this._me = userService.profile;
}

record(): Observable<string> {

return Observable.create(observer => {
const { webkitSpeechRecognition }: IWindow = <IWindow>window;
this.speechRecognition = new webkitSpeechRecognition();
this.speechRecognition.continuous = false;
// this.speechRecognition.interimResults = true;
this.speechRecognition.lang = this._me.lang;
this.speechRecognition.maxAlternatives = 1;

this.speechRecognition.onresult = speech => {
let term = '';
if (speech.results) {
const result = speech.results[speech.resultIndex];
const transcript = result[0].transcript;
if (result.isFinal) {
if (result[0].confidence < 0.3) {
console.log('Unrecognized result - Please try again');
} else {
term = transcript.trim();
console.log('Did you said? -> ' + term + ' , If not then say something else...');
}
}
}
this.zone.run(() => {
observer.next(term);
});
};

this.speechRecognition.onerror = error => {
observer.error(error);
};

this.speechRecognition.onend = () => {
observer.complete();
};

this.speechRecognition.start();
console.log('Say something - We are listening !!!');
});
}


stop() {
if (this.speechRecognition) {
this.speechRecognition.stop();
}
}

}

这是在带有 Chrome 60 的 Windows 10 上使用它时控制台上的日志错误

enter image description here

最佳答案

我的 Chrome 浏览器做同样的事情,我在 chrome 59(有效)中尝试过,更新到 60 后它被阻止了。

另外:我在我的本地服务器上尝试使用 WebSpeech Api 进行音频输入。如果我通过 localhost:XXXX 连接它可以工作,但是当我通过 ip:XXXX 连接时它会被阻止

关于angular - SpeechRecognition 在 Windows 10 中的 Chrome 版本 60 上始终被阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45464201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com