Первое замечание: большинство современных систем преобразования текста в речь, таких как система AT & T, с которой вы связаны, используют каскадный синтез речи . Этот метод использует большую базу данных записей голоса одного человека, издающих длинный набор предложений, выбранных так, чтобы присутствовало наибольшее количество комбинаций фонем. Синтез предложения может быть сделан просто путем связывания воедино сегментов этого корпуса - сложная задача - сделать связывание воедино бесшовным и выразительным.
Есть два больших препятствия, если вы хотите использовать эту технику, чтобы президент Обама сказал смущающие слова:
- Вам необходимо иметь доступ к большой коллекции предложений целевого голоса, желательно записанных с одинаковыми условиями записи и хорошим качеством. AT & T имеет бюджет для записи десятков часов одного и того же оратора в одной студии, но если вы хотите подделать чей-то голос всего за 5 минут записи, это будет трудно.
- Существует значительное количество ручного выравнивания и предварительной обработки, прежде чем записанный исходный материал будет в правильном «формате», который будет использоваться системой конкатенативного синтеза речи.
Ваша интуиция о том, что это возможное решение, действительна - при условии, что у вас есть бюджет для решения этих двух проблем.
К счастью, есть другие методы, которые могут работать с меньшим количеством наблюдений и данных. Область синтеза речи, заинтересованная в «подделке» или «подражании» одному голосу из записи, называется преобразованием голоса. . У вас есть запись А1 целевого говорящего А, произносящего предложение 1, и запись В2 исходного громкоговорителя В, говорящая предложение 2, вы стремитесь создать запись А2 говорящего А, произносящего предложение 2, возможно, с доступом к записи В1 говорящего Б, воспроизводящей с его / ее голосом то же самое высказывание как целевой динамик.
Схема системы преобразования голоса следующая:
- Аудио функции извлечены из записи А1, и они сгруппированы в акустические классы. На этом этапе это немного похоже на то, как если бы в сумках были все «а» динамика А, все «о» динамика А и т. Д. Обратите внимание, что это гораздо более простая и грубая операция, чем истинное распознавание речи - нас не интересует распознавая правильно сформированные слова - и мы даже не знаем, какая сумка содержит «o», а какая сумка содержит «a» - мы просто знаем, что у нас есть несколько экземпляров одного и того же звука в каждой сумке.
- Тот же процесс применяется на B2.
- Акустические классы от А1 и В2 совмещены. Продолжая аналогию с сумками, это эквивалентно сопряжению сумок из шагов 1 и 2, так что все звуки, которые мы имеем в этой сумке из динамика А, должны соответствовать тем звукам, которые мы имеем в этой сумке из динамика B. гораздо проще сделать, если B1 используется на шаге 2.
- Функция сопоставления оценивается для каждой пары сумок. Поскольку мы знаем, что этот пакет содержит звуки из динамика А, и этот пакет содержит те же самые звуки, но сказал динамик В - мы можем найти операцию (например, умножение матрицы на векторы признаков), которая заставит их соответствовать. Другими словами, теперь мы знаем, как заставить «2» динамика 2 звучать так же, как «o» динамика 1.
- На этом этапе у нас есть все карты для преобразования голоса. Из каждого фрагмента записи B2 мы используем результат шага 2., чтобы выяснить, какому акустическому классу он соответствует. Затем мы используем функцию отображения, оцененную на шаге 4, для преобразования среза.
Я настаиваю на том, что это работает на гораздо более низком уровне, чем выполнение распознавания речи в B2, а затем выполнение TTS с использованием голоса A1 в качестве корпуса.
Для шагов 1 и 2 используются различные статистические методы - наиболее распространенными являются GMM или VQ. Для части 2 используются различные алгоритмы выравнивания - это самая сложная часть, и очевидно, что выравнивание A1 против B1 легче, чем A1 против B2. В более простом случае для выравнивания могут использоваться такие методы, как Dynamic Time Warping. Что касается этапа 4, наиболее распространенным преобразованием являются линейные преобразования (умножение матриц) на векторах признаков. Более сложные преобразования создают более реалистичные имитации, но задача регрессии по поиску оптимального отображения является более сложной для решения. Наконец, что касается шага 5, качество ресинтеза ограничено используемыми функциями. LPC, как правило, легче иметь дело с простым методом преобразования (взять кадр сигнала -> оценить остаточный сигнал и спектр LPC -> при необходимости, остаточный сдвиг основного тона -> применить модифицированный спектр LPC к измененному остатку). Использование представления речи, которое может быть обращено обратно во временную область и которое обеспечивает хорошее разделение между просодией и фонемами, является ключевым моментом здесь! Наконец, при условии, что у вас есть доступ к выровненным записям ораторов A и B, говорящим одно и то же предложение, существуют статистические модели, которые одновременно выполняют шаги 1, 2, 3 и 4 в одной процедуре оценки модели.
Я мог бы вернуться с библиографией позже, но очень хорошим местом для начала, чтобы почувствовать проблему и общую структуру, использованную для ее решения, является «Система преобразования голоса, разработанная Стилиану, Муленом и Каппе, основанная на вероятностной классификации и гармонике». плюс модель шума ».
Насколько мне известно, широко не существует программного обеспечения, выполняющего преобразование голоса, - только программное обеспечение, изменяющее свойства исходного голоса, такие как параметры высоты тона и длины голосового тракта (например, преобразователь IRCAM TRAX), - с которым вам придется связываться в надежде сделать запись звука ближе к целевому голосу.