Здравствуйте, читатели, поверьте, эта статья не такая скучная, как кажется из названия. Здесь я научил машину имитировать голос, и удивительно то, что вы тоже можете это делать, ну, не имитировать, конечно, я имел в виду, что вы тоже можете сделать такой проект.

«Люди полюбят свое угнетение, будут обожать технологии, которые лишают их способности мыслить».

Олдос Хаксли

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

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

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

Посмотрите этот потрясающий документальный фильм AlphaGo на YouTube.

AlphaGo рассказывает о путешествии из залов Кембриджа через закоулки Бордо, мимо кодирующих терминалов DeepMind в Сеул, где легендарный мастер го сталкивается с недоказанным противником искусственного интеллекта. По мере развития драмы возникают вопросы: что может рассказать искусственный интеллект об игре, которой 3000 лет? Чему это научит нас о человечестве?

Итак, без лишних слов, давайте вернемся к нашей теме «ГОЛОС».

Во-первых, зачем мы вообще изучаем эту вещь, какую ценность она имеет в сегодняшнюю современную эпоху? Как мы говорим, «настоящая любовь не может существовать без искреннего уважения, и чтобы по-настоящему уважать кого-то, мы должны найти время, чтобы понять, кто они». Поэтому нам потребуется время, чтобы разобраться в этом, но да, оно того стоит.

Представьте, что вы можете разговаривать с виртуальным помощником, который звучит так же, как ваша любимая знаменитость или историческая личность. С клонированием голоса в реальном времени эта мечта становится реальностью. Голосовые помощники, такие как Alexa и Siri, уже стали повсеместной частью нашей повседневной жизни, но что, если бы у вас был собственный помощник, который говорил бы с вами голосом Альберта Эйнштейна или Мэрилин Монро? Клонирование голоса в реальном времени делает это возможным, а возможности для развлечения и творчества безграничны.

Как в этом фильме HER.

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

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

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

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

  1. Кодер Text-to-Mel
  2. Вокодер или голосовой кодировщик
  3. Кодер динамика
  4. Синтезатор в реальном времени

Чтобы лучше понять этот поток, рассмотрите рисунок: «Блок-схема RTVC», просматривая объяснение моделей ниже. Мы будем часто использовать термин RTVC для обозначения «клонирования голоса в реальном времени».

«Кодер Text-to-Mel» – это нейронная сеть, которая принимает последовательность текста, например слов или фонем, и кодирует ее в соответствующую последовательность спектрограмм в шкале Mel. Спектрограммы в шкале Мела — это обычное представление речи, которое фиксирует информацию о частоте и времени аудиосигнала. Одним из примеров кодировщика преобразования текста в Mel является Tacotron2.

«Вокодер» – это нейронная сеть, которая принимает спектрограмму в масштабе Мел и генерирует соответствующий сигнал. Вокодер по существу преобразует спектрограмму обратно в звуковой сигнал. Существуют различные типы вокодеров, например WaveRNN, WaveNet или MelGAN, которые можно использовать для клонирования голоса в реальном времени.

«Speaker Encoder» – это нейронная сеть, которая берет короткий фрагмент звука от целевого говорящего и кодирует его в вектор фиксированной длины, представляющий уникальные характеристики голоса говорящего. Этот вектор используется для настройки вокодера во время синтеза речи, позволяя модели генерировать речь, которая звучит как целевой говорящий.

«Синтезатор в реальном времени» — это последний компонент системы клонирования голоса в реальном времени, который принимает вводимый текст и генерирует соответствующую синтетическую речь в реальном времени. Синтезатор обычно использует кодировщик текста в Mel для генерации спектрограмм в шкале Mel из входного текста, а затем передает эти спектрограммы в вокодер вместе с внедрением динамика для генерации соответствующей формы волны.

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

Итак, до сих пор мы находимся в нашем путешествии «ЧТО?» о том, как?". Не волнуйтесь, в конце концов, вы сами поймете «ПОЧЕМУ?».

Начиная с части «КАК» с нашей первой моделью,

Кодировщик спектрограммы Text-to-Mel

Кодировщик спектрограмм Text-to-Mel — это модель, которая принимает на вход последовательность текстовых символов (например, предложение или фразу) и генерирует на выходе последовательность спектрограмм в шкале Mel, которые представляют речь, соответствующую этому тексту.

Спектрограммы в масштабе Мела — распространенный способ представления речевых сигналов в моделях машинного обучения. По сути, они представляют собой двумерную матрицу, которая представляет частотное содержание речевого сигнала во времени. Вертикальная ось представляет частоту сигнала (в герцах), а горизонтальная ось представляет время (в секундах). Каждая точка в матрице представляет собой амплитуду сигнала на определенной частоте и в определенное время.

Кодировщик спектрограмм Text-to-Mel обычно состоит из глубокой нейронной сети, которая принимает вводимый текст как последовательность символов и генерирует спектрограммы в масштабе Mel как последовательность двумерных матриц. Сеть обычно состоит из нескольких слоев сверточных нейронных сетей (CNN) и рекуррентных нейронных сетей (RNN), которые обрабатывают входной текст и генерируют спектрограммы в масштабе Мела.

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

Кодер спектрограмм Text-to-Mel является важным компонентом систем клонирования голоса в реальном времени, поскольку он позволяет системе генерировать спектрограммы в шкале Mel, которые используются в качестве входных данных для вокодера для синтеза голоса целевого говорящего.

Вокодер, также известный как Voice Encoder

Вокодер — еще один важный компонент систем клонирования голоса в реальном времени. Он берет спектрограммы в масштабе Mel, сгенерированные кодировщиком спектрограмм Text-to-Mel, и преобразует их в форму волны, которая звучит как целевой динамик.

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

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

Существует несколько типов вокодеров, используемых при клонировании голоса в реальном времени, но одним из распространенных типов является вокодер WaveNet, основанный на глубоких генеративных моделях. Вокодеры WaveNet используют авторегрессионные модели для прогнозирования каждого звукового сэмпла в форме волны на основе предыдущих сэмплов и спектрограмм в шкале Мела.

Вокодер WaveNet обычно состоит из нескольких слоев расширенных сверточных нейронных сетей (CNN), которые работают со спектрограммами в масштабе Мел и генерируют форму аудиосигнала. Скорость расширения определяет, сколько раз шагов может видеть CNN, что позволяет ей фиксировать долгосрочные зависимости в аудиосигнале.

Во время обучения вокодер WaveNet обучается сводить к минимуму среднеквадратичную ошибку (MSE) между сгенерированной формой звукового сигнала и истинной формой сигнала для заданного набора спектрограмм в шкале Mel. После обучения вокодер можно использовать для генерации высококачественных речевых сигналов из спектрограмм в масштабе Мела в режиме реального времени.

Другие типы вокодеров, используемые при клонировании голоса в реальном времени, включают вокодер Гриффина-Лима и вокодер SampleRNN. Каждый тип вокодера имеет свои преимущества и недостатки, и выбор вокодера зависит от конкретных требований приложения.

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

Ниже представлена ​​визуализация вокодера WaveRNN. Обратите внимание, что значения параметра могут отличаться в зависимости от оригинальной модели.

Кодировщик динамиков

Кодер динамика используется для извлечения многомерного вектора признаков или встраивания динамика из заданного речевого сигнала, который представляет уникальные характеристики голоса говорящего. Затем это внедрение используется для настройки вокодера WaveNet в процессе синтеза речи.

Встраивание динамиков обычно объединяется со спектрограммами в масштабе Mel, сгенерированными кодировщиком спектрограмм Text-to-Mel, и подается в вокодер WaveNet в качестве дополнительного входного канала. Это позволяет вокодеру WaveNet генерировать речевые сигналы, которые звучат как целевой динамик.

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

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

Ниже представлена ​​визуализация Speaker Encoder. Обратите внимание, что значения параметра могут отличаться в зависимости от оригинальной модели.

Синтезатор в реальном времени

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

Спектрограммы в шкале Mel и встраивание динамиков сначала объединяются вместе, а затем передаются в синтезатор. Синтезатор обычно представляет собой нейронную сеть, состоящую из нескольких слоев сверточных и/или рекуррентных нейронных сетей, которые работают с конкатенированным входом и генерируют синтезированную форму волны.

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

Комбинируя выходные данные кодировщика спектрограммы Text-to-Mel, кодировщика динамиков и синтезатора реального времени, мы можем добиться клонирования голоса в реальном времени. Кодировщик спектрограмм Text-to-Mel генерирует спектрограммы в шкале Mel из входного текста, кодировщик динамиков извлекает встроенный динамик из голоса целевого диктора, а синтезатор реального времени генерирует форму волны, которая звучит как целевой динамик.

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

Это быстрая демонстрация этого проекта.

Вот образцы аудио. Пожалуйста, используйте наушники для лучшего восприятия записанного звука.

Мой записанный звук.



Звук, созданный моделью.



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