diff --git a/packages/TtsService/jni/android_tts_SynthProxy.cpp b/packages/TtsService/jni/android_tts_SynthProxy.cpp index 0aa4fa5ec8c11..0dafcc1354dd7 100644 --- a/packages/TtsService/jni/android_tts_SynthProxy.cpp +++ b/packages/TtsService/jni/android_tts_SynthProxy.cpp @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - +#define LOG_NDEBUG 0 #include #include @@ -168,7 +168,7 @@ void prepAudioTrack(SynthProxyJniStorage* pJniData, static tts_callback_status ttsSynthDoneCB(void *& userdata, uint32_t rate, AudioSystem::audio_format format, int channel, int8_t *&wav, size_t &bufferSize, tts_synth_status status) { - LOGI("ttsSynthDoneCallback: %d bytes", bufferSize); + LOGV("ttsSynthDoneCallback: %d bytes", bufferSize); if (userdata == NULL){ LOGE("userdata == NULL"); @@ -178,7 +178,7 @@ static tts_callback_status ttsSynthDoneCB(void *& userdata, uint32_t rate, SynthProxyJniStorage* pJniData = (SynthProxyJniStorage*)(pForAfter->jniStorage); if (pForAfter->usageMode == USAGEMODE_PLAY_IMMEDIATELY){ - LOGI("Direct speech"); + LOGV("Direct speech"); if (wav == NULL) { delete pForAfter; @@ -189,16 +189,16 @@ static tts_callback_status ttsSynthDoneCB(void *& userdata, uint32_t rate, prepAudioTrack(pJniData, rate, format, channel); if (pJniData->mAudioOut) { pJniData->mAudioOut->write(wav, bufferSize); - LOGI("AudioTrack wrote: %d bytes", bufferSize); + //LOGV("AudioTrack wrote: %d bytes", bufferSize); } else { - LOGI("Can't play, null audiotrack"); + LOGE("Can't play, null audiotrack"); } } } else if (pForAfter->usageMode == USAGEMODE_WRITE_TO_FILE) { - LOGI("Save to file"); + LOGV("Save to file"); if (wav == NULL) { delete pForAfter; - LOGI("Null: speech has completed"); + LOGV("Null: speech has completed"); } if (bufferSize > 0){ fwrite(wav, 1, bufferSize, pForAfter->outputFile); diff --git a/packages/TtsService/src/android/tts/TtsService.java b/packages/TtsService/src/android/tts/TtsService.java index 21f56f8536231..a6a2dd3ac08a1 100755 --- a/packages/TtsService/src/android/tts/TtsService.java +++ b/packages/TtsService/src/android/tts/TtsService.java @@ -170,6 +170,39 @@ public class TtsService extends Service implements OnCompletionListener { } + private String getDefaultLanguage() { + String defaultLang = android.provider.Settings.Secure.getString(mResolver, + android.provider.Settings.Secure.TTS_DEFAULT_LANG); + if (defaultLang == null) { + return TextToSpeech.Engine.FALLBACK_TTS_DEFAULT_LANG; + } else { + return defaultLang; + } + } + + + private String getDefaultCountry() { + String defaultCountry = android.provider.Settings.Secure.getString(mResolver, + android.provider.Settings.Secure.TTS_DEFAULT_COUNTRY); + if (defaultCountry == null) { + return TextToSpeech.Engine.FALLBACK_TTS_DEFAULT_COUNTRY; + } else { + return defaultCountry; + } + } + + + private String getDefaultLocVariant() { + String defaultVar = android.provider.Settings.Secure.getString(mResolver, + android.provider.Settings.Secure.TTS_DEFAULT_VARIANT); + if (defaultVar == null) { + return TextToSpeech.Engine.FALLBACK_TTS_DEFAULT_VARIANT; + } else { + return defaultVar; + } + } + + private void setSpeechRate(int rate) { if (isDefaultEnforced()) { nativeSynth.setSpeechRate(getDefaultRate()); @@ -185,15 +218,16 @@ public class TtsService extends Service implements OnCompletionListener { private void setLanguage(String lang, String country, String variant) { - Log.v("TTS", "TtsService.setLanguage("+lang+", "+country+", "+variant+")"); + Log.v("TTS", "TtsService.setLanguage(" + lang + ", " + country + ", " + variant + ")"); if (isDefaultEnforced()) { - nativeSynth.setLanguage(lang, country, variant); + nativeSynth.setLanguage(getDefaultLanguage(), getDefaultCountry(), + getDefaultLocVariant()); } else { - // TODO handle default language - nativeSynth.setLanguage("eng", "USA", ""); + nativeSynth.setLanguage(lang, country, variant); } } + /** * Adds a sound resource to the TTS. *