Intereting Posts
Android – очистка истории при навигации между действиями Android, кнопка входа в систему Facebook вызывает сбои (SDK 4.0.0) Android Bluetooth API подключается к нескольким устройствам Как установить положение в прядильщике? Ошибка кодера на графическом процессоре Adreno при кодировании с поверхности Как обрабатывать RESTful обновление удаленного сервера с помощью SyncAdapter Arm-linux-androideabi-gcc не может создать исполняемый файл – компиляция ffmpeg для устройств android armeabi Изображение появляется при наклоне 90 градусов при загрузке с сервера на Android? GetSupportActionBar (панель инструментов) выбрасывает исключение нулевого указателя, используя Butterknife для панели инструментов Несколько Syncadapters в одном приложении Просмотр в ScrollView не соответствует родительскому элементу Как программно включить параметр Autostart для моего приложения в APP безопасности MI 4i? Каков параметр Parcel.readStringArray ()? Android Cling / Upnp proguard Диалоговый размер (ширина) игнорируется

Как я могу контролировать, как Android TTS воспроизводит аудио

У меня есть класс, который использует Android TTS API для транскрипции текста в аудио. Я могу контролировать высоту и скорость; Но я заметил, что движок требует текстовую строку, а также хэш-объект. Я заметил, что некоторые слова произносятся слишком быстро, чтобы их можно было легко распознать, а перегибы выглядят слишком противоестественными. Есть ли способ управлять этими двумя вещами? Возможно, через HashMap ? Ниже приводится описание того, как я использую движок:

  mTts = new TextToSpeech(Globals.context, this); // context, listener } @Override public void onInit(int status) { HashMap<String, String> myHashRender = new HashMap(); myHashRender.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, speech); mTts.setPitch(0.8f); mTts.setSpeechRate(0.6f); mTts.synthesizeToFile(speech, myHashRender, fileOutPath); while (mTts.isSpeaking()) try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } mTts.stop(); mTts.shutdown(); 

Google TTS в настоящее время не поддерживает это, но вот что вы можете сделать: во время разбора вашего текста вы можете изменить его части, чтобы получить интонацию и флексию, которые вы хотите.

Например, если вы встретите слово «Эй», вы переписываете его «на лету» на «Heeeey», прежде чем отправлять его на движок TTS, чтобы получить другое произношение.

Это не очень, но это обходной путь.

Google TTS в настоящее время не поддерживает изменение перегибов и не поддерживает встроенные теги просодии, как определено в SSML . – alanv 5 июн в 20:30

Google TTS в настоящее время не поддерживает изменение перегибов и не поддерживает встроенные теги просодии, как определено в SSML . Хотя есть параметры, которые вы можете установить, ни один из них не контролирует перегиб или просодию на слово.

Могут быть другие двигатели, которые поддерживают эти функции. Например, eSpeak поддерживает теги SSML и имеет порт Android, доступный в Play Маркете.