2013-06-15 2 views
1

Android 용 2.3 버전의 HD Desire 폰이 있습니다.Android TextToSpeech addSpeech()가 작동하지 않습니다.

TTS는 정상적으로 작동하며 내가주는 모든 텍스트를 말합니다. 그러나 아래의 두 줄 중 하나를 사용하여 일부 텍스트에 대해 내 자신의 음성을 설정하면 단순히 줄을 쓰지 않은 것처럼 텍스트를 무시하고 텍스트를 합성합니다.

tts.addSpeech("salam", "/sdcard/salam.wav"); 
tts.addSpeech("shalam", "com.company.appname", R.raw.shalam); 
... 
tts.speak("salam", TextToSpeech.QUEUE_FLUSH, null); //<--This isn't playing my voice file. 
tts.speak("shalam", TextToSpeech.QUEUE_FLUSH, null); //<--Neither is this 

나는 두 파일의 존재를 확신합니다. 왜 그럴까요? 사운드 파일에 대한 제한이 있습니까? 예를 들어 자신의 주파수 또는 모노 또는 스테레오입니까?

이미 docs을 확인했는데 관련이 없습니다.

답변

2

좋아, 내 문제는 몇 시간 동안 낭비하는 매우 어리석은 상황을 발견했다 !! 누군가 내 실수를하면 도움이되기를 바랍니다.

우리는 onInit 기능에 TTS가 성공적으로 예를 들어, 초기화되는 지점에 텍스트의이 매핑을 연기해야 ​​

@Override 
public void onInit(int status) { 
    if(status == TextToSpeech.SUCCESS) 
    { 
     tts.setLanguage(Locale.US); 
     mapVoices(); 
    } 
    else 
     ... 
} 

private void mapVoices() 
{ 
    tts.addSpeech("salam", "/sdcard/salam.wav"); 
    tts.addSpeech("shalam", "com.company.appname", R.raw.shalam); 
    //... 
} 
+0

나는 같은 문제에 직면하지만 내 경우 문제의 파일 .WAV이었다! .mp3는 정상적으로 작동했습니다. – Deep

+0

mapVoices() 란 무엇입니까? – ktos1234

+0

@ ktos1234 텍스트를 음성 파일에 매핑하는 사용자 지정 방법입니다. 내 대답을 더 명확하게 편집했습니다. – Mousa

관련 문제