我正在 Ionic2 框架中使用cordova 插件寻找语音识别。
如果可以实现,你能否轻轻提供一个代码示例(.html和.ts)?
我发现了这个,但是对于Ionic1:http://devgirl.org/2016/01/08/speaking-with-cordova/,我无法调整Ionic2的代码。
我非常感谢您提供的任何帮助,并对我的小英语感到抱歉。
答案 0 :(得分:5)
来源:https://github.com/macdonst/SpeechRecognitionPlugin。
使用命令行,将此插件添加到Ionic2项目中:
cd Your_Project_Root_Folder
自iOS 10起,必须在info.plist中添加NSMicrophoneUsageDescription
才能访问麦克风。
要添加此条目,您可以在插件安装上传递MICROPHONE_USAGE_DESCRIPTION
变量。
ionic plugin add https://github.com/macdonst/SpeechRecognitionPlugin --variable MICROPHONE_USAGE_DESCRIPTION="your usage message"
在iOS 10及更高版本上,它使用原生SFSpeechRecognizer(与Siri相同)。 在iOS 9及更早版本中,它使用iSpeech SDK,需要API密钥,在https://www.ispeech.org/上获取一个,它是免费的。要提供密钥,请在config.xml
中添加此首选项<preference name="apiKey" value="yourApiKeyHere" />
在 .ts 文件的开头添加声明,在导入之后,在课程定义之前:
declare const SpeechRecognition: any;
然后,在你的课堂上:
recognition: any;
constructor() {}
SpeechToText() {
this.platform.ready().then(() => {
this.recognition = new SpeechRecognition();
this.recognition.lang = 'en-US';
this.recognition.onnomatch = (event => {
console.log('No match found.');
});
this.recognition.onerror = (event => {
console.log('Error happens.');
});
this.recognition.onresult = (event => {
if (event.results.length > 0) {
console.log('Output STT: ', event.results[0][0].transcript);
}
});
this.recognition.start();
});
}
iSpeech支持的语言包括: 英语(加拿大)(en-CA)英语(美国)(en-US)西班牙语(西班牙)(es-ES)法语(法国)(fr-FR)意大利语(意大利)(it-IT)波兰语(波兰)(PL-PL)葡萄牙语(葡萄牙)(pt-PT)
ps:对于iOS 10错误kAFAssistantErrorDomain,或者如果您必须等待结果,请检查this。
完成!强>
编辑:在Ionic v3.0.1(2017-04-06)上测试并正常工作:)
答案 1 :(得分:1)
我使用这个AngularJS指令: