API, чтобы разбить голос на фонемы / синтезировать новую речь, учитывая образцы речи? - PullRequest
16 голосов
/ 11 августа 2011

Вы знаете те фильмы, где технические гики записывают чей-то голос, а их программное обеспечение разбивает его на фонемы?Что они могут затем использовать, чтобы напечатать любую фразу и создать впечатление, будто цель говорит это?

Существует ли это программное обеспечение в версии API?Я даже не знаю, что с Google.

Ответы [ 7 ]

13 голосов
/ 11 августа 2011

Нет такого программного обеспечения. Разбиение произвольной речи на составляющие ее фонемы является лишь частично решенной проблемой: преобразование речи в текст все еще несовершенно, как и преобразование текста в речь .

Идея состоит в том, чтобы воспроизвести тембр голоса цели. Даже если бы вы смогли идеально сегментировать звук, переупорядочивание фонем произвело бы звук с неестественной частотой и интонацией, не говоря уже о артефактах сплайсинга. В этот момент вы переходите к сглаживанию, масштабированию по времени и коррекции высоты тона, которые все возможны и понятны в теории, но плохо работают с данными реального мира, особенно когда рассматриваемый аудиосэмпл такой короткий, как одна фонема и далее, когда тембр необходимо сохранить.

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

Кроме того, вашей конечной проблемой является социальная инженерия , и людей нелегко обмануть, когда речь заходит о голосах людей, которых они знают. Даже при большом объеме входных данных в лучшем случае можно получить короткий некачественный образец, которого вряд ли хватит для разговора.

Так что, хотя это, конечно, возможно, это сложно; даже если бы он существовал, он не всегда был бы достаточно хорош.

5 голосов
/ 31 января 2014

SRI International (компания, которая создала Siri для iOS) имеет SDK под названием EduSpeak , который принимает аудиовход и разбивает его на отдельные фонемы. Я знаю это, потому что я просмотрел демо продукта около недели назад. Во время демонстрации докладчик показал нам приложение, созданное с использованием SDK. Приложение дало несколько строк текста для чтения докладчиком. После прочтения текста приложение отображает гистограмму, где каждая гистограмма представляет фонему из его речи. Высота каждой полосы представляла собой оценку того, насколько хорошо произносится каждая фонема (докладчик не был носителем английского языка, поэтому он получал более низкие оценки по некоторым фонемам по сравнению с другими). Докладчик также может нажимать на каждую отдельную панель, чтобы воспроизводить только эту отдельную фонему с использованием исходного звука.

Так что да, существует программное обеспечение, которое разделяет звук по фонемам, и оно делает очень хорошую работу. Теперь, могут ли эти фонемы быть повторно собраны в речь, остается открытым вопросом. Если мы получим пробную версию SDK, я опробую ее и дам вам знать.

3 голосов
/ 11 августа 2011

Если ваша цель состоит в том, чтобы имитировать чей-то голос, то другой подход - преобразовать свой собственный голос (вместо того, чтобы собирать фонемы). Это (удивительно) называется преобразованием голоса, например http://www.busim.ee.boun.edu.tr/~speech/projects/Voice_Conversion.htm

2 голосов
/ 11 августа 2011

Технология называется «синтез голоса» и «распознавание голоса»

API Java для этого можно найти здесь Голос Java JSAPI

У Apple есть API для этого Речь Apple

У Microsoft есть несколько ... один обсуждается здесь Речь Vista

1 голос
/ 14 сентября 2017

Lyrebird - это стартап, который работает над этой самой проблемой.Учитывая образцы голоса человека и некоторый письменный текст, он может синтезировать устную версию этого письменного текста в голосе человека в образцах.

1 голос
/ 07 августа 2012

Я не знаю о коммерчески доступном решении, но концепция не полностью выходит за рамки возможного.Например, Университет штата Делавэр имеет достаточно приличное программное обеспечение для этого.

http://www.modeltalker.com

1 голос
/ 14 августа 2011

Вы можете получить интересные эффекты искажения голоса с помощью функции изменения высоты тона. Adobe Audition имеет довольно хорошую реализацию. Antares выпускает несколько интересных вокальных эффектов VST plugins .

Эти методы используют некоторую форму кодирования с линейным предсказанием (LPC) для обработки голоса как модели фильтра источника. LPC работает с речевыми сигналами, оценивая резонанс речевого тракта (формант), обращая его эффект обратным фильтром, а затем кодируя результирующий остаточный сигнал. Остаточный сигнал в идеале представляет собой последовательность импульсов, которая представляет глоттальный импульс. Это позволяет независимо масштабировать высоту тона и формант, что приводит к гораздо лучшему результату преобразования пола, чем простое смещение высоты.

...