我正在寻找一种方法来显示使用语音识别所说的文字。我使用过cordova-plugin-speechrecognition。 我可以使用startListening功能点击麦克风和speack。但有没有办法在屏幕上显示语音文字。 参考:https://ourcodeworld.com/articles/read/401/how-to-use-the-speech-recognition-api-in-cordova
答案 0 :(得分:0)
您可以将文本放在html文本标记中,在我的示例中为id sstBtn
function startRecognition(){
return window.speechRecognition.startRecognition({
language:"en-US",
showPopup: true
}).then(function(data){
console.log("Results",data);
var sttElement = parentElement.querySelector('.stt');
sttElement.innerHTML = data[0]
}).catch(function(err){
console.error(err);
});
}
答案 1 :(得分:0)
我在识别后立即显示了结果 page.ts
constructor(private speech:SpeechRecognition,private cd:ChangeDetectorRef) {
this.speech.startListening(
{
language:"en-US",
matches:1
}
).subscribe((matches)=>{
this.matches=matches;
this.cd.detectChanges();
}
使用 ChangeDetectorRef
更新更改
现在在 page.html
<ion-card>
<ion-card-content>
{{matches}}
</ion-card-content>
</ion-card>
答案 2 :(得分:0)
Efficient method to display the text with the help of ngzone
Include private speech:SpeechRecognition and private ngzone;NgZone in constructor
**page.ts**
'''
this.speech.startListening(
{
language:"en-US",
matches:1
}
).subscribe((matches)=>{
this.ngzone.run( ()=> {
this.matches=matches;
});
});
'''
**page.html**
'''
<ion-card>
<ion-card-content>
{{matches}}
</ion-card-content>
</ion-card>
'''