科尔多瓦:有没有办法检测语音听写是否已在iOS

时间:2016-02-04 21:05:54

标签: ios cordova phonegap-plugins cordova-plugins hybrid-mobile-app

请注意,此问题适用于 Cordova / PhoneGap / Hybrid 应用。

我有一个<textarea>,我希望应用程序只有在语音听写输入结束时才会以某种方式运行 - 即用户标签“完成”。然而,这被证明是相当困难的。

iOS的UIKitdictationRecordingDidEnd下提供了UITextInput个活动,但我不确定这是否可以在混合应用中使用。 (iOS开发人员库文档here

编辑:我正在使用ionic-plugin-keyboard

非常感谢任何想法。

1 个答案:

答案 0 :(得分:4)

也许您可以尝试使用SpeechRecognitionPlugincordova-plugin-iflyspeech

对于cordova-plugin-iflyspeech,您有13个事件可以控制iOS设备中的语音控制,例如:

SpeechBegin
SpeechEnd
SpeechCancel
SpeechResults
SpeechError  
VolumeChanged

SpeakBegin
SpeakPaused
SpeakResumed
SpeakCancel
SpeakCompleted 
SpeakProgress
BufferProgress

并支持多种语言,如:英语(美国),英语(英国),法语,西班牙语,意大利语等。

这是文档的一个示例

function onLoad() {
    document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady() {
    $('div#status').html( 'speech engine ready' );
}
function startReading() {
    var text = $('textarea#read').val();
    navigator.speech.startSpeaking( text, {voice_name: 'xiaoyan'} );
}
function stopReading() {
    navigator.speech.stopSpeaking();
}
function startListening() {
    $('div#status').html( 'Listening, please speak.' );

    navigator.speech.startListening({language:'en-US'} function(str) {
            // this is what the device hear and understand
            $('textarea#read').val( str );
        });
}
function stopListening() {
    navigator.speech.stopListening();
}

在这里,您可以将iOS方法dictationRecordingDidEnd绑定到: stopListening();cancelListening();方法,具体取决于操作。