Источник: https://github.com/macdonst/SpeechRecognitionPlugin.
Использование командной строки, добавьте этот плагин для вашего проекта Ionic2:
cd Your_Project_Root_Folder
С прошивкой 10 это обязательно добавить NSMicrophoneUsageDescription
в info.plist, чтобы получить доступ к микрофону.
Чтобы добавить эту запись, вы можете передать переменную 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 поддерживаются языки: английский (Канада) (еп -CA) Английский (США) (en-US) Испанский (Испания) (es-ES) Французский (Франция) (fr-FR) Итальянский (Италия) (it-IT) Польский (Польша) (pl-PL) Португальский (Португалия) (pt-PT)
ps: Для iOS 10 ошибка kAFAssistantErrorDomain или если вам нужно подождать результатов, отметьте this.
Выполнено!
редактировать: протестирован на Ионическом v3.0.1 (2017-04-06) и работает отлично :)
Проверить эту ссылку - https: //github.com/gandhirajan/Cordova_Speech_Recognizer – Gandhi
Это для ионных :( Как преобразовать код в ионный 2? – mosca90
Поймите, но в чем проблема, с которой вы столкнулись? – Gandhi