2011-09-18 11 views
3

でTTSテキストが受信され処理されましたが、HEIGHTではありません同じ問題のコードが同じであるため、この問題は厳しいですは3種類のAndroid 2.2携帯電話で完璧ですが、LG Optimus S Android 2.2も走っている)。LGオプティマウスS

一方、この問題は再現性があるため、謎を解く途中で若干の希望があるかもしれません。

問題は、問題のある電話機(LG Optimus S)を含むすべての電話機で、TTSエンジン(Pico)に渡された最初の2つのテキストセグメントが正しく処理されてスピーカーで聞こえるようになります。

しかし、スピーチRecognitionControllerの認識ステップ後TTSエンジン、に渡された第三及び第四のセグメント、すべての電話機で完全に良性ログ内の結果、ことを除いて問題の携帯電話に何もスピーカーから聞こえません! - 問題のある電話機でもすべてOnUtteranceCompleted()を受信しましたが!

私はこのコードが正しいことを知っています。これは他の電話機でも完全に機能するため、これを引き起こす可能性があるのは困惑しています。

が、これは不十分なCPUリソースのだろうか?不十分なメモリリソース?

もしそうなら、なぜ最初の2つのテキストセグメントでは機能しますが、連続する2つのテキストセグメントでは機能しませんか?

それは、システムの動作中に「奇妙な」何かをスポッティングに役立つことができれば、私は問題の携帯電話に欠けているTTS音声のサンプルlogcatを含めています:

INFO/RecognitionController(1773): State change: RECOGNIZING -> RECOGNIZED 
INFO/RecognitionController(1773): Final state: RECOGNIZED 
INFO/ServerConnectorImpl(1773): ClientReport{session_id=040af29064d281350f1325c6a361f003,request_id=1,application_id=voice-search,client_perceived_request_status=0,request_ack_latency_ms=93,total_latency_ms=2179,user_perceived_latency_ms=213,network_type=1,endpoint_trigger_type=3,} 
INFO/AudioService(121): AudioFocus abandonAudioFocus() from [email protected] 
DEBUG/AppRecognizer(2167): Proceed. 
INFO/TTS received:(2167): Speaking text segment number three but NOTHING is coming out of the speaker!!! 
VERBOSE/TtsService(572): TTS service received Speaking text segment number three but NOTHING is coming out of the speaker!!! 
VERBOSE/TtsService(572): TTS processing: Speaking text segment number three but NOTHING is coming out of the speaker!!! 
VERBOSE/TtsService(572): TtsService.setLanguage(eng, USA,) 
INFO/SVOX Pico Engine(572): Language already loaded (en-US == en-US) 
INFO/SynthProxy(572): setting speech rate to 100 
INFO/SynthProxy(572): setting pitch to 100 
INFO/ClientReportSender(1773): Sending 1 client reports over HTTP 
INFO/TTS received:(2167): Speaking text segment number four but NOTHING is coming out of the speaker!!! 
VERBOSE/TtsService(572): TTS service received Speaking text segment number four but NOTHING is coming out of the speaker!!! 
WARN/AudioTrack(572): obtainBuffer timed out (is the CPU pegged?) 0x5b3988 user=00062b40, server=00061b40 
VERBOSE/TtsService(572): TTS callback: dispatch started 
VERBOSE/TtsService(572): TTS callback: dispatch completed to 1 
VERBOSE/TtsService(572): TTS processing: Speaking text segment number four but NOTHING is coming out of the speaker!!! 
VERBOSE/onUtteranceCompleted(2167): segment #3 
VERBOSE/TtsService(572): TtsService.setLanguage(eng, USA,) 
INFO/SVOX Pico Engine(572): Language already loaded (en-US == en-US) 
INFO/SynthProxy(572): setting speech rate to 100 
INFO/SynthProxy(572): setting pitch to 100 
WARN/AudioTrack(572): obtainBuffer timed out (is the CPU pegged?) 0x5b3988 user=0007dc00, server=0007cc00 
VERBOSE/TtsService(572): TTS callback: dispatch started 
VERBOSE/TtsService(572): TTS callback: dispatch completed to 1 
VERBOSE/onUtteranceCompleted(2167): segment #4 

対応するログの電話でその完全にこのようになります動作します:I

INFO/RecognitionController(1773): State change: RECOGNIZING -> RECOGNIZED 
INFO/RecognitionController(1773): Final state: RECOGNIZED 
INFO/ServerConnectorImpl(1773): ClientReport{session_id=040af29064d281350f1325c6a361f003,request_id=1,application_id=voice-search,client_perceived_request_status=0,request_ack_latency_ms=96,total_latency_ms=2449,user_perceived_latency_ms=140,network_type=1,endpoint_trigger_type=3,} 
INFO/AudioService(121): AudioFocus abandonAudioFocus() from [email protected] 
DEBUG/AppRecognizer(2167): Proceed. 
INFO/TTS received:(2167): Speaking text segment number three (and I can hear it :) 
VERBOSE/TtsService(572): TTS service received Speaking text segment number three (and I can hear it :) 
VERBOSE/TtsService(572): TTS processing: Speaking text segment number three (and I can hear it :) 
INFO/ClientReportSender(1773): Sending 1 client reports over HTTP 
VERBOSE/TtsService(572): TtsService.setLanguage(eng, USA,) 
INFO/SVOX Pico Engine(572): TtsEngine::setLanguage found matching language(eng) but not matching country(). 
INFO/SVOX Pico Engine(572): Language already loaded (en-US == en-US) 
INFO/SynthProxy(572): setting speech rate to 100 
INFO/SynthProxy(572): setting pitch to 100 
INFO/TTS received:(2167): Speaking text segment number four (and I can hear it :) 
VERBOSE/TtsService(572): TTS service received Speaking text segment number four (and I can hear it :) 
INFO/AudioHardwareQSD(121): AudioHardware pcm playback is going to standby. 
DEBUG/dalvikvm(3262): GC_EXPLICIT freed 6946 objects/326312 bytes in 76ms 
WARN/AudioTrack(572): obtainBuffer timed out (is the CPU pegged?) 0x3ce730 user=00032e80, server=00031e80 
WARN/AudioFlinger(121): write blocked for 170 msecs, 161 delayed writes, thread 0xdc08 
VERBOSE/TtsService(572): TTS callback: dispatch started 
VERBOSE/onUtteranceCompleted(2167): segment #3 
VERBOSE/TtsService(572): TTS callback: dispatch completed to 1 
VERBOSE/TtsService(572): TTS processing: Speaking text segment number four (and I can hear it :) 
VERBOSE/TtsService(572): TtsService.setLanguage(eng, USA,) 
INFO/SVOX Pico Engine(572): TtsEngine::setLanguage found matching language(eng) but not matching country(). 
INFO/SVOX Pico Engine(572): Language already loaded (en-US == en-US) 
INFO/SynthProxy(572): setting speech rate to 100 
INFO/SynthProxy(572): setting pitch to 100 
WARN/KeyCharacterMap(2167): No keyboard for id 131074 
WARN/KeyCharacterMap(2167): Using default keymap: /system/usr/keychars/qwerty.kcm.bin 
DEBUG/dalvikvm(7137): GC_EXPLICIT freed 1585 objects/93216 bytes in 67ms 
DEBUG/dalvikvm(6697): GC_EXPLICIT freed 3108 objects/178688 bytes in 59ms 
VERBOSE/TtsService(572): TTS callback: dispatch started 
VERBOSE/onUtteranceCompleted(2167): segment #4 

UPDATE:問題(唯一のLGオプティマスS LS670中)は初回のみのために音声認識後キックを発生します。任意の数のテキストセグメントを送信できますが、そのうちのいくつかは非常に長く、TTSエンジンは大声で完全に話します。しかし、電話がリスニングに入る瞬間(もちろん、話すのと同時にではない)、TTSは大きな音を鳴らしません。音声認識装置が起動しても自動的に復元されないとすぐにスピーカー「ミュート」が自動的に発生するように、音声認識が行われます。

実際に先に進んでをRecognitionListener.onEndOfSpeech()に挿入しようとしましたが、それは助けになりませんでした。

UPDATE II: - :

Intent checkIntent = new Intent(); 
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA); 
startActivityForResult(checkIntent, TTS_STATCHECK);  

アイデア私も、RecognitionListener.onEndOfSpeech()に次を追加するTTSエンジンを再始動するprehapsがsomwhereバグをリセットすることができることを考えてみました、これはどちらかを助けていませんか?提案?

答えて

1

Android 2.2.2(Froyo)からAndroid 2.3.3(Gingerbread)へのOTAファームウェアアップデートを受け入れるだけで問題を解決しました。

これは私のコードではなく、その特定のROM(LS670ZVD)のOSのバグであることが判明しました。

関連する問題