我现在已经能够使用ionic框架文档在我的项目上实现离子语音识别(语音到文本)了,我希望能够使用任何表单输入,ngmodel或formcontrol保存文本或音频
我尝试过将matchs变量绑定到分配给新变量的ng模型,但没有用
startListening() {
let options = {
language: 'en-US',
matches: 2,
prompt: 'Say Something!'
}
this.speechRecognition.startListening(options).subscribe(matches => {
this.matches = matches;
this.cd.detectChanges();
});
this.isRecording = true;
}
<ion-grid>
<ion-row>
<ion-col *ngIf="matches">
<h3 *ngFor="let match of matches">
{{ match }}
</h3>
<ion-item>
<ion-input type="text" [(ngModel)]="matches">
</ion-input>
</ion-item>
</ion-col>
</ion-row>
</ion-grid>
我希望能够看到输入中的文本,以便在保存到数据库之前可以进行编辑
答案 0 :(得分:0)
您可以这样做,
现在,您的语音文本结果将保存在matches
变量中。
现在让您稍微输入一下即可更改。根据您的问题,我了解到您需要在输入字段中显示口头文字,然后更改该文字或其他内容。
为此,您可以将输入值设置为匹配。执行此操作时,您的输入字段将显示匹配文本,但仍可编辑。但是您需要为该输入提供一个不同的[(ngModel)]变量,因为您需要识别并跟踪更改后的匹配值(matches
)
<ion-input type="text" value="matches" [(ngModel)]="correctedMatches">
答案 1 :(得分:0)
我解决了,终于用Angular trackBy解决了
<ion-grid>
<ion-row>
<ion-col *ngIf="matches">
<h3 *ngFor="let match of matches; let i = index; trackBy:trackByInstance"">
{{ match }}
</h3>
<ion-item>
<ion-input type="text" [(ngModel)]="matches[i]">
</ion-input>
</ion-item>
</ion-col>
</ion-row>
</ion-grid>
trackByInstance(index: any) {
return index;