hyperloop-modules / titanium-speech

Use the iOS 10 SFSpeechRecognizer API in JavaScript with Appcelerator Hyperloop.
21 stars 9 forks source link

Unable to relaunch ti.speech #6

Open SquirrelMobile opened 7 years ago

SquirrelMobile commented 7 years ago

When i stop the speech recognition ("live audio" in the demo project) with TiSpeech.stopRecognition(); and i restart the speech recognition with TiSpeech.startRecognition for the second time, I get this error: [ERROR] An error occurred with speech recognition [ERROR] Error Domain=kAFAssistantErrorDomain Code=209 "(null)"

hansemannn commented 7 years ago

@SquirrelMobile Thanks for testing! It looks like a known issue on the Simulator (see related error-code here). Does it work on device? I'll check-out the proposal they have in the thread, should be super easy to adopt to Hyperloop. Thx!

SquirrelMobile commented 7 years ago

Hello, i can't test on the simulator. I've tested on my iPad and my iPhone (7). It didn't work either on the device. I think you can easily reproduce the bug on your demo app. Thanks for your feedback !

bincTW commented 7 years ago

Same problem here .. (Device iPhone 7) When I restart recognition, I get this error:

required condition is false: _recordingTap == nil
[ERROR] :  Script Error {
[ERROR] :      column = 26;
[ERROR] :      description = "required condition is false: _recordingTap == nil";
[ERROR] :      line = 145;
[ERROR] :      message = "required condition is false: _recordingTap == nil";
[ERROR] :      name = "com.apple.coreaudio.avfaudio";
[ERROR] :      nativeStack = "1   libobjc.A.dylib                     0x00000001880d8538 objc_exception_throw + 56\n2   CoreFoundation                      0x0000000189676eb4 <redacted> + 0\n3   AVFAudio                            0x00000001a36991cc <redacted> + 60\n4   AVFAudio                            0x00000001a370d57c <redacted> + 144\n5   AVFAudio                            0x00000001a370b17c <redacted> + 216\n6   CoreFoundation                      0x000000018967ce80 <redacted> + 144\n7   CoreFoundation                      0x00000001895722c4 <redacted> + 292\n8   UnternehmenForm                     0x0000000100555bd4 UnternehmenForm + 5217236\n9   UnternehmenForm                     0x000000010055077c UnternehmenForm + 5195644\n10  UnternehmenForm                     0x0000000100320f68 UnternehmenForm + 2903912\n11  UnternehmenForm                     0x00000001003c6c08 UnternehmenForm + 3582984\n12  UnternehmenForm                     0x00000001003ccb48 UnternehmenForm + 3607368";
[ERROR] :      sourceURL = "file:///var/containers/Bundle/Application/54144A66-95A8-4136-B980-D7BFBF8EBBE0/UnternehmenForm.app/hyperloop/avfoundation/avaudionode.js";
[ERROR] :      stack = "dispatch@[native code]\nvalue@file:///var/containers/Bundle/Application/54144A66-95A8-4136-B980-D7BFBF8EBBE0/UnternehmenForm.app/hyperloop/avfoundation/avaudionode.js:145:26\nstartRecognition@file:///var/containers/Bundle/Application/54144A66-95A8-4136-B980-D7BFBF8EBBE0/UnternehmenForm.app/lib/ti.speech.js:1:4886\nrequestVoiceCommand@file:///var/containers/Bundle/Application/54144A66-95A8-4136-B980-D7BFBF8EBBE0/UnternehmenForm.app/ui/common/contactView.js:1:2007";
[ERROR] :  }
[ERROR] :  required condition is false: _recordingTap == nil
[ERROR] :  Script Error {
[ERROR] :      column = 26;
[ERROR] :      description = "required condition is false: _recordingTap == nil";
[ERROR] :      line = 145;
[ERROR] :      message = "required condition is false: _recordingTap == nil";
[ERROR] :      name = "com.apple.coreaudio.avfaudio";
[ERROR] :      nativeStack = "1   libobjc.A.dylib                     0x00000001880d8538 objc_exception_throw + 56\n2   CoreFoundation                      0x0000000189676eb4 <redacted> + 0\n3   AVFAudio                            0x00000001a36991cc <redacted> + 60\n4   AVFAudio                            0x00000001a370d57c <redacted> + 144\n5   AVFAudio                            0x00000001a370b17c <redacted> + 216\n6   CoreFoundation                      0x000000018967ce80 <redacted> + 144\n7   CoreFoundation                      0x00000001895722c4 <redacted> + 292\n8   UnternehmenForm                     0x0000000100555bd4 UnternehmenForm + 5217236\n9   UnternehmenForm                     0x000000010055077c UnternehmenForm + 5195644\n10  UnternehmenForm                     0x0000000100320f68 UnternehmenForm + 2903912\n11  UnternehmenForm                     0x00000001003c6c08 UnternehmenForm + 3582984\n12  UnternehmenForm                     0x00000001003ccb48 UnternehmenForm + 3607368";
[ERROR] :      sourceURL = "file:///var/containers/Bundle/Application/54144A66-95A8-4136-B980-D7BFBF8EBBE0/UnternehmenForm.app/hyperloop/avfoundation/avaudionode.js";
[ERROR] :      stack = "dispatch@[native code]\nvalue@file:///var/containers/Bundle/Application/54144A66-95A8-4136-B980-D7BFBF8EBBE0/UnternehmenForm.app/hyperloop/avfoundation/avaudionode.js:145:26\nstartRecognition@file:///var/containers/Bundle/Application/54144A66-95A8-4136-B980-D7BFBF8EBBE0/UnternehmenForm.app/lib/ti.speech.js:1:4886\nrequestVoiceCommand@file:///var/containers/Bundle/Application/54144A66-95A8-4136-B980-D7BFBF8EBBE0/UnternehmenForm.app/ui/common/contactView.js:1:2007";
[ERROR] :  }
[ERROR] :  ErrorController is up. ABORTING showing of modal controller  
hansemannn commented 7 years ago

@brentonhouse Did you see this before? Seems audio-related. Will try to take a peek as well.

brentonhouse commented 7 years ago

I will take a look at it

brentonhouse commented 7 years ago

I am not seeing the issue in the example app using:

Titanium SDKs:  6.0.4.GA and 6.1.1.RC
Node.js:  6.10.3
Appc CLI:  6.2.2
Titanium CLI:  5.0.14
Alloy:  1.10.3
Hyperloop 2.1.1

@SquirrelMobile @bincTW -- Can you include details of your environment?

bincTW commented 7 years ago

Found out that the error only occurs in combination with the usage of bencoding.utterance module (native speech synthesizer module) and that I need to initialize utterance module first - and everything works fine.

brentonhouse commented 7 years ago

@SquirrelMobile -- Are you using the bencoding.utterance module as well?