语音识别(语音到文本 - STT cordova插件)

mos*_*a90 0 speech-to-text voice-recognition cordova ionic2 angular

我正在寻找语音识别Ionic2与科尔多瓦框架插件.

如果可以实现,你可以轻轻提供一个代码示例(.html和.ts)吗?

我找到了这个,但是对于Ionic1:http://devgirl.org/2016/01/08/speaking-with-cordova/ 我无法调整Ionic2的代码.

我非常感谢你能提供的任何帮助,对不起我的小英语.

mos*_*a90 5

资料来源:https://github.com/macdonst/SpeechRecognitionPlugin.

使用命令行,将此插件添加到您的Ionic2项目:

cd Your_Project_Root_Folder
Run Code Online (Sandbox Code Playgroud)

从iOS 10开始,必须NSMicrophoneUsageDescription在info.plist中添加一个来访问麦克风.

要添加此条目,您可以MICROPHONE_USAGE_DESCRIPTION在插件安装上传递变量.

ionic plugin add https://github.com/macdonst/SpeechRecognitionPlugin --variable MICROPHONE_USAGE_DESCRIPTION="your usage message"
Run Code Online (Sandbox Code Playgroud)

在iOS 10及更高版本上,它使用本机SFSpeechRecognizer(与Siri相同).在iOS 9及更早版本中,它使用iSpeech SDK,需要API密钥,在https://www.ispeech.org/上获取,它是免费的.要提供密钥,请在config.xml中添加此首选项

<preference name="apiKey" value="yourApiKeyHere" />
Run Code Online (Sandbox Code Playgroud)

在类定义之前,在导入之后,在.ts文件的开头添加声明:

declare const SpeechRecognition: any;
Run Code Online (Sandbox Code Playgroud)

然后,在你的班上:

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();
    });
}
Run Code Online (Sandbox Code Playgroud)

iSpeech支持的语言有: 英语(加拿大)(en-CA)英语(美国)(en-US)西班牙语(西班牙)(es-ES)法语(法国)(fr-FR)意大利语(意大利)(it-IT) )波兰语(波兰)(PL-PL)葡萄牙语(葡萄牙)(pt-PT)

ps:对于iOS 10错误kAFAssistantErrorDomain或者如果必须等待结果,请选中此项.

完成!

编辑:在Ionic v3.0.1(2017-04-06)上测试并且工作正常:)