использование движка eSpeak tts в приложении

У меня есть этот код для преобразования текста в речь в моем приложении.

public void onInit(int status) {
    // TODO Auto-generated method stub
     if (status == TextToSpeech.SUCCESS) {
         //Setting speech language           
         int result = tts.setLanguage(Locale.ENGLISH);            
         //If your device doesn't support language you set above
         if (result == TextToSpeech.LANG_MISSING_DATA
                 || result == TextToSpeech.LANG_NOT_SUPPORTED) {
                //Cook simple toast message with message
                Toast.makeText(this, "Language not supported", Toast.LENGTH_LONG).show();
                //Log.e("TTS", "Language is not supported");
         }                 
         //TTS is not initialized properly
     } else {
                Toast.makeText(this, "TTS Initilization Failed", Toast.LENGTH_LONG).show();
                //Log.e("TTS", "Initilization Failed");
     }
}

Мое приложение включает много разных языков, таких как английский, хинди, маратхи, телугу, тамильский и т. Д. Поскольку движок tts для Android по умолчанию не поддерживает эти языки, я загрузил движок eSpeak tts с этого .

По умолчанию установлен английский язык. Как мне изменить его язык в моем коде, чтобы он мог читать тексты в Юникоде и на других языках?

В настоящее время для слова на хинди он произносит некоторые числа.

Как мне заставить его распознавать язык, используемый в тексте? Он показывает только локали, доступные в google tts по умолчанию. Как изменить движок tts на eSpeak tts?


person newbee    schedule 02.07.2013    source источник
comment
где вы можете это решить. Можете ли вы поделиться образцом кода для этого же?   -  person appbootup    schedule 17.10.2013
comment
@SSR Нет .. Я не смог решить эту проблему .. Он не обнаруживает движок espeak.   -  person newbee    schedule 20.10.2013


Ответы (2)


Инициализируйте свой TextToSpeech, используя

TextToSpeech (Context context, TextToSpeech.OnInitListener listener, String engine)

То есть

tts = new TextToSpeech(this, this, "com.googlecode.eyesfree.espeak");

engine Имя пакета используемого движка TTS, которое можно получить, вызвав getEngines.

person Hoan Nguyen    schedule 03.07.2013
comment
не могли бы вы объяснить подробно? Когда я инициализирую его таким образом, eclipse показывает, что контекст не может быть преобразован в переменную, TextToSpeech.OnInitListener не может быть преобразован в переменную ....... - person newbee; 04.07.2013
comment
На моем телефоне установлен eSpeak tts. Когда я кодирую eclipse, как мне заставить его распознать этот движок? Есть ли какие-то шаги, которые мне не хватает? Пожалуйста помоги. Я новичок в android - person newbee; 04.07.2013

Попробуйте изменить языковой стандарт в соответствии с вашими потребностями.

В настоящее время Locale.ENGLISH измените это соответствующим образом.

person Mr_Hmp    schedule 02.07.2013
comment
да .. но это не определяет tts eSpeak. Он показывает только локали, доступные в google tts по умолчанию. Как изменить движок tts на eSpeak tts? - person newbee; 02.07.2013