Как можно более плавно воспроизводить голоса ogg в приложении Java - TTS - PullRequest
2 голосов
/ 25 февраля 2012

Я занимаюсь разработкой преобразования текста в речь (TTS) для своего собственного языка Java (это окончательный проект, который не был разработан ранее, поэтому я не могу использовать встроенные классы).

Я могу распознать дифоны для ввода текста.

Для воспроизведения я помещаю дифоны в массив после завершения анализа входного текста. После этого я воспроизводю аудиофайлы (в формате ogg) в соответствии с дифонами в массиве (один за другим).

Я хочу спросить, что вы думаете об этом методе игры на отдельных дифонах? Прямо сейчас у меня есть (большие) промежутки между воспроизведением каждого аудиоклипа, который я пытаюсь сгладить. Есть идеи?

1 Ответ

1 голос
/ 25 февраля 2012

При синтезе дифонов принято разделять дифоны в середине телефона, где он наиболее стабилен, и таким образом соединять их вместе. Так, например, чтобы синтезировать слово «встреча», я бы начал с телефона m iy (в символах ARPAbet), затем обрезал его в середине iy и разделил на дифон iy dx, в котором оба телефоны были разделены пополам, и так далее, заканчивая ix ng дифоном, где ng завершен.

Чтобы сделать это, вам нужно знать индекс времени в каждой .ogg, который соответствует середине непрерывного телефона или промежутку между закрытием и снятием остановки.

...