Podlodka #435 – Синтез речи - podcast episode cover

Podlodka #435 – Синтез речи

Jul 28, 20251 hr 6 min
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Summary

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

Episode description

Синтез речи давно вышел за рамки утилитарных задач и стал важной частью взаимодействия человека с технологией: от помощников до медиа и образовательных продуктов. В гости к нам пришел Сергей Дуканов, который разрабатывал голосовые ассистенты Маруси, Алисы и Олега, а сейчас – CTO в международном AI dubbing стартапе Dubformer. В этом выпуске мы прошлись по четырём поколениям TTS-систем: от простейшего склеивания фрагментов до нейросетевых моделей, способных передавать интонации и эмоции. Обсуждаем, зачем синтезированной речи характер, почему интонационные “ошибки” делают голос живым и что важно учитывать при встраивании TTS в продукты. Также ждем вас, ваши лайки, репосты и комменты в мессенджерах и соцсетях!
 Telegram-чат: https://t.me/podlodka Telegram-канал: https://t.me/podlodkanews Страница в Facebook: www.facebook.com/podlodkacast/ Twitter-аккаунт: https://twitter.com/PodcastPodlodka Ведущие в выпуске: Стас Цыганов, Аня Симонова Полезные ссылки: TTS от Nari Labs – модель понимает семантику и воспроизводит non-verbal звуки https://file.notion.so/f/f/66aabc3d-2e89-493a-b4a0-fff5163ca3ce/d6943564-77a0-42bb-ab1b-9d8b069791b4/audio_(15).wav?table=block&id=1db3a738-1c3e-802c-aafe-d6c1f0a80cf4&spaceId=66aabc3d-2e89-493a-b4a0-fff5163ca3ce&expirationTimestamp=1752854400000&signature=whU8sG9EDBhx_rFMQCmV0HjWKBKx52kKz69bVVJqhRM Больше примеров тут https://yummy-fir-7a4.notion.site/dia Примеры AI дубляжа от Dubformer: bobr curva на русском https://drive.google.com/file/d/1NT1kus-u7N67ThfAUFWfkggcCS_N2lvv/view?usp=sharing, TODO что-нибудь на английском

Transcript

Введение и Путь Сергея

Всем привет-привет. Это подкаст «Подлодка», и сегодня мы будем говорить про синтез речи. Помогать сегодня мне вести будет Аня. Привет, Аня. Привет-привет. А в гостях у нас сегодня Сергей Дуканов. Сергей последние 8 лет занимается синтезом речи, успел поучаствовать в разработке голосовых ассистентов Маруси, Алисы и Олега, руководил ML-технологиями перевода видео в Яндекс.Браузере, а последние пару лет развивает международный Привет, привет, Стас, привет, Аня.

Привет, рад быть здесь. Я вот тебя как-то кратко представил, но мне кажется, ты намного лучше это сделаешь своими словами. Чем тебя вообще захватила эта тема? Чем она тебе интересна? Что можешь вообще про себя рассказать? Да, изначально я... Учился в универе на Computer Vision специалиста. Занимались распознаванием объектов на изображениях и распознаванием лиц.

Параллельно я проходил стажировку в Mail.ru, и как раз-таки в этот момент в Mail.ru стартовал проект Маруси. Я слышал, как коллеги по столу, а там такой open space с такими большими круглыми столами, слушают синтез речи, и меня настолько вдохновила идея. что я не просто как бы определяю границы bounding box изображений, а я синтезирую голос, похожий на человека, что последние 8 лет я посвятил этой работе. И, как ты заметил, успел и в Алисе поработать в роли инженера.

И в Олеге в роли Леда потом снова в Яндекс ушел. И там уже развивали более сложный, более многосоставной проект, где не только синтез речи задействован, но и распознавание, биометрия, перевод и так далее. Потом это все постепенно приобретало коммерческий какой-то потенциал. и в итоге все вылилось в то, что мы пошли со своими коллегами делать стартап, который мы сейчас и делаем. Круто-круто. Ну что, будем сегодня разбираться подробнее в этой теме.

Основы Синтеза Речи и Смежные Задачи

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

потом чуть глубже погрузился. Но хочется сразу описать соседствующие задачи с ней, например, распознавание речи. Довольно часто путают их между собой. Распознавание речи, она же транскрибация речи, она же ISR, то есть Automated Speech Recognition. Нам на вход дан аудио...

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

То есть speaker verification или speaker recognition. Довольно так тоже часто называется это. Ну и есть всякие задачи, которые в себя комбинируют. Распознавание речи, синтез речи и перевод. Например, задача...

conversational, то, что называется conversational AI. Там задача формулируется как на входе речь и на выходе речь. Собственно, как мы сейчас с вами общаемся. Мы с вами не записываем текст промежуточный какой-то. Мы с вами говорим так и мыслим как-то, и рассуждаем. В общем, задача conversational AI, она активно применяется.

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

делаем что-то искусственное, что-то синтетическое, например, произносим текст. Но не обязательно. На самом деле это может быть еще пение, а может быть пение птиц или музыка, или музыка с пением, с вокалом и так далее. Задача, которой я в основном занимаюсь, это text-to-speech, то есть когда нам нужно принести какой-то конкретный текст. Эта задача имеет некоторые модификации, некоторые усложнения.

Например, мы хотим синтезировать не просто какой-то текст, а с какой-то эмоцией. Обычно так называется эмоциональный ТТС. Если мы хотим... синтезировать текст для какого-то определенного спикера, и этого спикера не было в нашем датасете обучающем, то это называется ZeroShot TTS, он же Voice Cloning.

ZeroShot — это термин технический из машинного обучения. Он означает то, что мы видели ноль примеров на этапе обучения. То есть это некоторый такой in-context learning, очень похоже на то, как работают промпты в LLM. Вы начинаете какую-то фразу, LLM ее продолжает.

построен весь диалог с LM, и, собственно, в синтезе также. Мы можем дать ей пример какого-то голоса. Она понимает, что такое голос, что такое тембр, и копирует самые важные характеристики и воспроизводит его в синтезе. Это называется voice-cloning. Часто с voice-cloning путают voice-conversion. Это немножко другая задача. Клонинг — это копирование голоса, а конвершн — это копирование произношения и просодий.

Я назвал довольно много терминов, такие как «тембр», «произношение» или «просодия». Это довольно базовые термины в синтезе речи. Я бы с радостью их раскрыл подробнее. Но, наверное, хочется закончить описание именно задач, которые стоят в «Ойс Конвершн», собственно, задачи.

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

Клонирование Голоса и Его Применение

Давайте расскажу про термин, который я назвал. Давай немножко с задачками. Я еще не понял, для чего может использоваться ZeroShot. То есть у нас получается то, что мы человека до этого не видели, у нас нет никаких сэмплов, но вот он в моменте говорит, и нам нужно что-то досинтезировать. Вот сейчас вот в лайве. Когда это может понадобиться? Отличный вопрос. Смотри, например, мы делаем дубляж. И в дубляже мы хотим сохранить оригинальные голоса персонажей, которые были на видео.

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

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

в таком случае все-таки дообучаются. То есть это все-таки делают задачу не ZeroShot, а FewShot или прям файн-тюнинга модели на его данных, чтобы добиться более высокого качества. А почему это тогда ZeroShot? Мы все-таки какие-то примеры скармливаем или там как бы... именно смысл в том, что обучающая выборка, то есть это количество сэмплов, оно недостаточно для полноценного обучения. Да.

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

пожалуйста, аудио. И, собственно, это называется ZeroShot, но в простонародье, что говорится, называется это Voice Cloning. Так, а чем он тогда отличается, Voice Cloning, от второго, что ты говорил, вот этот вот Conversion? Да, а Voice Conversion — это ортогональная задача, Voice Conversion — вершине мы... Вот ты записал какую-то

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

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

У меня нетехнический вопрос. У нас, короче, существует проблема, что всем всегда лень записать рекламную интеграцию. И я подумала, что можно будет, короче, запихивать туда голоса ведущих под лодки и скармливать туда готовые тексты. согласованы с рекламодателем. И тогда я правильно понимаю, что рекламная интеграция должна выходить голосом Стаса, Кати, Жени или кого-то еще? Это так работает? Да, только здорово еще будет подобрать периферен.

Мы называем это reference или voice sample или примеры, на которых ваша интонация наиболее оживленная, веселая и продающая, потому что клонинг он копирует не только голос, но и интонацию тоже. Поэтому если вы хотите что-то продать, то нужно будет выбирать более продающую. То есть мы явно не будем брать сэмплы из той рекламы, которую мы уже записали.

Отличительные Черты Голоса

Давай немножко про теорию поговорим Ты начал перечислять много сложных штук Но хочется здесь как-то сделать шаг назад И обсудить, чем голос одного человека Отличается от другого По каким характеристикам Мне кажется, вот это может быть хорошим вопросом, с которого можно начать. Собственно, отличаются они темпром. На самом деле, что такое тембр? Это проще всего описать через призму того, как вообще наш речевой тракт устроен. Вот у нас у всех есть связки.

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

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

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

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

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

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

А еще хочется смысл отобразить. Я уже не говорю про то, что хочется, чтобы перевод нормальный был, который мы будем озвучивать. Но текст — это слишком сжатая форма, слишком lossy compression нашей жизни, нашего описания жизни, того, что происходит. Речь, она...

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

Как Определить Синтезированный Голос

более корректный этот перевод, более художественно правильный. Вот на самом деле в озвучке то же самое. Давай еще немножко с другой стороны зайдем. А вот как мы понимаем, что голос был синтезирован? Я не говорю сейчас прямо приоткровенно RoboVoice, но... Мне кажется, так же, как с AI-картинками, ты слушаешь и ты понимаешь, что он не настоящий. На самом деле есть несколько разных способов. Некоторые провайдеры ставят ватермарки на свои синтезные записи. И если...

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

звука. И натренированный слух достаточно с большой точностью может определить, синтетическая запись это или не синтетическая. Мы довольно много слушаем записи, наверное, в день, там, минут 10-15 синтетического контента, и в целом я уже достаточно точно могу его определить. Но есть и автоматический способ. А в чем это проявляется? На всех уровнях на самом деле проблема возникает. Первое. Понимание контекста. Синтез не очень понимает

Иногда. Хотя современный синтез очень сильно прокачался в этом плане и очень понимает контекст, который он говорит. Поэтому, если ты попросишь прочитать человеком книгу и синтезом книгу, у тебя синтез будет такой более равномерный, более плоский, что ли. Он будет интонировать, конечно, но как-то вот... будет той живости голоса, которая есть.

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

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

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

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

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

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

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

Самое надежное — это цифровые, ну, ватермарки от самих провайдеров. То есть есть какой-нибудь провайдер, например, LevelLabs. Это один из самых классных провайдеров SynthesRage. По-моему, у них есть функционал, где можно закинуть запись и проверить, была эта запись синтезирована ими или нет.

Собственно, там эти вотермарки, они должны быть инвариантны к каким-то преобразованием, ну, как минимум громкости, а в идеале еще там к растяжениям и каким-то еще модификациям. То есть там, ну, такая непростая задачка. Но я думаю, что там вот в safety, то, что я и safety, направление к синтезу, собственно, Это первым делом относится.

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

Эволюция Синтеза Речи: Четыре Эпохи

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

аудиокнижки, ну и как бы в каких-то случаях это находит себе применение, да? Интересно, как технически это раньше реализовывали. На самом деле, я... пришел как раз-таки в эту область в момент, когда происходил сдвиг фазовый, да, в алгоритмах, которые использовались. Вообще, на самом деле, в синтезе я бы выделил, наверное, четыре таких этапа формирования его. Первый — это 60-е годы, когда было такое полумеханическое, полуалгоритмическое моделирование речи.

Собрали несколько частот, похожий на звук А, похожий на звук А, будет звук А. Собрали вот такой вот импульс, похожий на B, похожий на B, будет B. Собственно, так вот собрали алфавит, а потом все это проклеили, когда синтезировали. Ну, вот, наверное, пример, когда последний раз из нас... сталкивался, может быть, в карманных переводчиках. Если у кого-то были такие, когда ты пиваешь текст, и можно его прослушать, и там вот такой ужасный роботичный голос. Потом...

Пришел ML. Довольно начал активно развиваться в 2014 году, там, DL и так далее. Начали какие-то более сложные статистические модели строить. Начали как-то более хитро делать алгоритмы склейки звуков или предзаписи каких-то фрагментов. Потом начали

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

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

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

и в Олеге занимались именно вот этой текстовой предобработкой. Вот куда поставить ударение? 40 или 40, например, да? Тебе нужно по контексту это определить. Для этого алгоритмы существовали на самом деле раньше, значит, довольно неплохо там даже правилами решается. Алгоритмы вот этого вот второго, я бы сказал, поколения... Основная проблема была в их монотонности. Там отсутствовала какая-либо экспрессия, и они были очень-очень

синтетические. Ну, вот этот пример, наверное, Алиса до 2016 года. Алиса, по-моему, чуть раньше появилась. Первая она была как раз построена на базе этого параметрического синтеза. Потом произошел скачок, как раз-таки вышли алгоритмы, их заимплементили. И вот началась третья эпоха как раз-таки синтеза речи, вдохновленная прорывами в диплёрнинге, когда начали рекуррентные сети сжечь, когда начали сверточные нейронные сети активно имплементиться.

когда поняли, что нужно данные, данные, данные, данные. У тех алгоритмов была проблема, что очень высокие требования на качество татасета. Я помню, когда мы делали «Марусю», я сидел на студии, мы записывали актера. Нужно записать порядка 20 часов актера. За сессию трехчасовую ты записываешь примерно час. Соответственно, тебе нужно сходить несколько раз на студию. Я сидел с листком. бумаги и смотрел что актер произносит и когда актер

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

ставить ударение и так далее. Плюс еще были огромные требования к акустической среде. Например, помню на какой-то записи, не помню где, то ли в Марусе, то ли в Алисе, работал кондей, потому что летом записывали. И половина записи была с кондеем, таким шумом.

на фоне. И синтез это отлично воспроизводил. Синтезу что покажи, он все воспроизведет. И там приходилось как-то хитрить, выбирать какие-то сэмплы и на них сильнее обуславливать модель при обучении, чтобы она не воспроизводила этот шум кодея. Короче, требований было куча.

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

который вот на 20 часов актер должен договорить. Ну, то есть понятно, да, что, наверное, у него должны быть там разные эмоции, он должен показать себя там максимально живо и проявить все экспрессии человека. Ну, типа, это без разницы, какой материал он будет зачитывать? Или там тоже есть требования?

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

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

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

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

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

фонетическая транскрипция. То есть если вы в школе английский язык учили, да, там нам давали транскрипцию. Вот для русского языка есть такая же транскрипция, только там есть различные аннотации. Там есть и по International Phonetic Alphabet, есть какие-то специфичные, есть какие-то русские. Ну, соответственно, ты модели даешь не текстов,

вот эту фонетическую транскрипцию. В ней все однозначно, и в ней не надо угадывать ударение и какие буквы на какие заменить. У тебя там слово Москва будет не Москва, а Москва записано. Это упрощает задачу, уменьшает требования к объему датасета. Прикольно, спасибо. И что, собственно, поменялось-то за последние, наверное, 2-3 года? Вот взлетели ЛНКи, все увидели, что много данных

И большие модели — это круто. И применили в целом это для синтеза. И синтезу сейчас в целом начал учиться на тест-сетах размера не 20 часов, а порядка... сотен тысяч часов. И там разнородные данные, кто во что гораст. Там есть большие открытые татасеты на 200 тысяч часов, там собранные из аудиокниг, каких-то YouTube-роликов и так далее. И в целом там не то, что покрытие всего словаря русского

языка происходит. Там покрыты всевозможные интонации, которые человек может встречать. Может быть, за исключением каких-то суперэкспрессивных, например, клик. Ну, наверное, крика там 0,001%.

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

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

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

Технические Детали Генерации Звука

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

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

например 10 букв это короткая односекундная реплика мало мыло рам до 1 секунда но если ты возьмешь звуковую волну Ну, запишешь свой голос, откроешь в аудиоредакторе и приблизишь ее очень сильно, ты увидишь, что вот эта вот одна секунда, это на самом деле 40 тысяч звуковых отсчетов. Соответственно, у нас есть огромная разница разрешения этих пространств, и напрямую мапить из одного пространства другое, ну, пока так никто не делает. Делают, строят иерархию.

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

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

Что мы делаем? Мы идем скользящим окном по нашему звуку с некоторым шагом и считаем частоты. Сколько у нас, например, громкости в частоте 40 Гц, в частоте 41 Гц, 42 Гц и так далее. мы строим значение то, насколько эта частота представлена в нашем сигнале. В итоге получается, что ты разворачиваешь такой одномерный сигнал в такую двухмерную матрицу, у которой есть

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

Это суперсложный навык, я его так себе и не выработал. Я максимум могу как бы найти глас, но если я вижу текст, я могу сопоставить, какие гласные, где произносятся, какие согласные. Но его можно читать по картинкам. Возвращаясь к вопросу, вот эта вот картинка, она уже более удобная для работы. По времени она уже не в тысячу раз больше, чем текст по длине, а где-то в сотню, в две сотни раз. С этим работать уже проще, собственно. Ты уже можешь взять

трансформер. Это архитектура машинного обучения, на базе которой построены непосредственно все ILM'ки и так далее. Она еще в 2016 году появилась. Ты можешь скормить ей эти данные, пары, текст и аудио, и попросить выучить эту закономерность. Выучить закономерность ей будет несложно, потому что разрешение пространства достаточно сопоставимые, но у тебя что-то получится. Хорошо. Собственно, так был построен синтез третьего поколения. Сейчас мелспектрограмм...

Я не сказал, что такое мел. Я сказал, что такое спектрограмма. Спектрограмма, она, собственно, как я сказал, меряет значение громкости для каждой частоты, но человеческий слух, его восприятие, оно не линейно. Нам на самом деле более важна разница в низких частотах. между 45 и 50 Гц, чем между 1100 или 1200.

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

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

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

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

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

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

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

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

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

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

Есть еще преобразования предшествующие тексту. Ну, например, нам нужно нормализовать текст или нам нужно фонетическую транскрипцию написать. Но часто модели, обученные на тысячах, на сотнях тысячах часов, они сами могут хорошо нормализовывать речь. Они могут понять, что 12 это не 1,2 и не 12, а 12, в зависимости от контекста. То есть модели синтеза речи, они еще и контекст могут понимать. Круто, круто. Так, про проблемы с третьим поколением мы, кажется, уже обсудили.

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

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

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

имел спектрограмм, что теперь там вместо них? Там имел спектрограммы и какие-то, то, что называется, латенты, то есть какое-то скрытое представление, оно неинтерпретируемое человеком, ты не можешь его визуализировать и посмотреть, но модель машинного обучения...

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

Собственно, вот это вот сжатое представление, оно и есть для нас интересное для моделирования. И как раз таки оно может быть инвариантно каким-то проблемам, которые есть в датасете. Или оно может быть, например, еще более компактно, чем мел-спектрограмма, но содержать достаточную информацию, чтобы потом это все разобрать.

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

потому что нам в одних случаях для одних юзкейсов важно одно, для других другое. Означает ли это то, что в том числе и модели, которые мы будем использовать, они будут тоже отличаться от юзкейса к юзкейсу? Да. На самом деле, вот последнее время, наверное, два подхода. Иногда применяются некоторые какие-то гибридные подходы из этих двух. Есть трансформеры. Трансформеры — это архитектура. Архитектура не определяет то,

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

Также модель пишет информацию, только не буквы, а какое-то сжатое, скрытое, понятное только ей представление. И есть второй подход, то, что называется диффузионки или flow matching. Подход, в котором ты, как такой реставратор картины, реставрируешь ее какие-то детали шаг за шагом. То есть ты каждый раз приходишь на работу, а у тебя Мона Лиза.

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

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

имел спектрограмму, а из него спектрограммы другая нейросеть восстанавливает звук. Но, собственно, 80% state of the art архитектуры примерно по такому подходу сейчас и построены. Тут непонятно, какой из этих подходов будет лучше, потому что у каждого свои минусы и свои плюсы.

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

чтобы датасет был чистый, к примеру. Но в целом, я думаю, это сойдется к чему-то одному. Здесь, скорее, надо, наверное, больше внимательно смотреть на объем данных, на частоту данных, на то, какой задачей мы учим, потому что, ну, там, в ЛМках, например, Например, модель, прежде чем появиться у вас на экране и отвечать на ваши вопросы полезно, она проходит несколько этапов обучения. На самом деле в синтезе все примерно то же самое.

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

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

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

но у нас есть данные на лучше-хуже. И тут вступает роль reinforcement learning, RLHF, DPO и так далее, в общем, другие подходы. До синтеза они пока добрались не в очень полезном и прикладном виде, то есть те проблемы,

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

подглядывает, какие там изменения происходят. Другой стороны достаточно сильно мотивируется тем, что в LM-ках происходит. И постепенно-постепенно в себе накапливает эти подходы, комбинирует их. Домен звука, он немножко другой. Он не так, чтобы plug-and-play, да, подход какой-то.

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

LLM и Будущее Синтеза Речи

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

и уже в конечном счете в сам звук. И при этом ты еще пока рассказывал, упомянул в том числе токены. Вот токены вот в этой схеме, они в каком месте находятся? Это вот в этом представлении? Токены и летенты это примерно одно и то же. там обычно образуется что-то непрерывное, то есть какой-то вектор, то есть массив из векторов, такая матричка, грубо говоря, да, непрерывная, что называется, float, да, то есть там чиселки не целые.

А под кодами подразумеваются, может быть, те же самые летенты, но пожатые, дискретизированные как-то. Как будто бы каждому летенты сгруппировали. в группы похожих латентов, и каждой группе дали номер. Иногда оказывается эффективнее моделировать дискретную величину, то есть говорить там, а вот сейчас у нас вот группа латентов 1, а вот сейчас у нас группа латентов 150, а вот сейчас у нас группа латентов 0.

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

которые ты используешь от данных, а то, насколько ты хорошо можешь эти латенты сделать или насколько хорошо можешь коды эти сделать. В общем, тут вот, собственно, простор для творчества, которым мы и занимаемся. Какое преимущество, собственно, дает то, что у нас вот это вот изначально... текст, он в некотором смысле может быть токенизирован. У нас получается то, что промежуточное представление, оно может быть представлено в виде токенов.

Да. У меня такой вопрос. Может быть, мы его уже покрыли до этого, но раз это токены, значит, мы можем брать и при помощи LLM с этими токенами что-то делать. Да, абсолютно верно. И это, кажется, ключевое преимущество, ну, в моём сейчас представлении, это ключевое преимущество по сравнению с предыдущим шагом. Да. Да, ты говоришь прям в коре, на самом деле. Не очень понятно, как взять предобученную ЛМ-ку, например, Квен какую-нибудь, да, OpenWade модельку какую-нибудь хорошую,

и натравить ее на latent. Ну, наверное, как-то можно, но, скорее всего, ты это будешь делать через моделирование дискретных каких-то значений. Собственно, коды как раз-таки уже дискретные, давайте их моделировать. Поэтому почти все open-source модельки, которые есть, open-weight модельки, хорошие. Они построены на базе, взяли текстовую ЛМ-ку.

Это важно, потому что в тексте много семантики, много смысла. В синтезе еще больше смысла и семантики, и поэтому как бы модели хорошо понимать вообще, о чем происходит речь. Поэтому есть вот модельки, я там могу скинуть пример. DIA от Nari Labs. Они там какую-то маленькую модель из open source или там... и несколько примеров более большой модели скинули. Что они сделали, скорее всего? Они просто взяли какую-то предобученную лэмку и натравили на датасет, состоящий из диалогов а-ля подкаст.

по типу наших. И разметили его еще. Транскрипировали как-то, может быть, размечали руками. В итоге что у них получилось? У них получилась модель, которой ты даешь транскрипт подкаста, и она... тебя за него синтезирует. Более того, она и смех засинтезирует, и запинание засинтезирует. Подкасты в целом можно автоматизировать в некотором роде. Будем записывать подкасты по переписке наконец-то. Слушать это будет все равно.

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

Оценка Качества Моделей Синтеза

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

Есть лидерборд на Hugging Face. Hugging Face — это платформа, где выкладываются опенсорс-модели, и там довольно много классных штуковин, статей, блогов и так далее. Вот там есть арена, где пользователи сравнивают, нравится-не нравится, модели между собой.

Они бьются между собой. И там считается yellow rating, как в шахматах, и модели ранжируются. Вот есть еще другие даже борты, где там еще пропоритарные модели сравниваются между собой. И я захожу туда и смотрю, на каком месте та модель, на которой мы сейчас ориентируемся. По State of the Art. И вижу, что она... на десятом месте.

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

написано на такую hi-fi гарнитуру, как будто бы пользователь выберет все равно это. Плевать, что там никакой интонации нет, никакой экспрессии нет, поэтому на этих лидер-пардах, в общем, довольно часто в топ поднимаются более качественные по... звуку записи. Вот, ну это, по крайней мере, на Hugging Face. Там на другом Dashboard там наверх поднялись наоборот, что мне еще менее интуитивно менее качественные по звуку записи, но от OpenAI. Там их прикол в том, что они такие очень живые, очень

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

Там и там результат будет по-разному оцениваться. И что мы считаем хорошо, а что плохо? Что для нас более важно? Для нас более важно качество звука или для нас более качественная экспрессия? Или для нас более качественное произношение? Мы не хотим же, чтобы синтез говорил там с... каким-нибудь акцентом, если это не предполагается в контенте. Кстати, вот довольно много

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

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

на какую-нибудь рекламу делают банковский продукт предлагают там например звук вообще не важен то есть там телефон пожмет звук будь здоров там важно на самом деле ты даже не интонация там важно насколько модель быстро ответит поэтому еще одна метрика этот латенси ты должен даже

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

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

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

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

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

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

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

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

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

куда-то не туда модель пошла. Вот. Есть еще более как бы ранний уровень оценки. Это метрики. Ты можешь метрики строить. Ну, просто банальный полос по лосу. Лос — это чиселка, которая оптимизируется в процессе обучения. И, соответственно, чем дольше модель учится, чем

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

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

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

Тест Тьюринга для Голоса

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

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

Сейчас, мне кажется, человек может понять. Мы это обсуждали, может человек понять или не может, что такое синтез речи. Это зависит от натренированности звука, контекста, задачи и так далее. И есть метрики, которые, что называется, проксируют это понимание. То есть мы можем...

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

Синтез Речи в Диалоговых Агентах

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

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

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

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

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

То есть тут вообще как состоит conversational движок? У тебя есть распознавание речи, которое понимаешь, что человек говорит, есть диалоговый движок, который определяет по тексту, что ответить, и синтез, который, собственно, это отвечает.

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

Потом еще ждешь, пока у тебя все это посчитается. Пошли по другому пути. А давайте мы все эти две-три задачи склеим в одну модель. Если мы найдем где-то какой-то обучающий корпус, или мы как-то потом дофантюнимся на этом обучающем корпусе, мы можем как бы сделать end-to-end, то, что называется end-to-end модель conversational. Она на вход будет принимать токены текста, на выходе выдавать токены, точнее, на выходе принимать токены аудио, и на выходе...

отдавать токены аудио. Может быть, даже с те же самые токены, про которые мы до этого говорили. Вот я думаю, что как раз-таки вот эти мультимодальные модели, да, которые там ЧАТ-ЖПТ, там 4О, вот это их conversational mode, он примерно на похожем и построен. То есть это какой-то, наверное, там дообученная модель, и

на задачу моделирования этих токенов. Она понимает токены на входе, акустические, звуковые, и может воспроизвести токены на выходе. А внутри у нее какой-то еще мыслительный процесс. Ну, в общем, она там может и прервать, когда надо, когда решит, и так далее. как ты обучишься, на каких данных ты ее обучишь. То есть тут задача переходит немножко в другое русло. Здесь уже, конечно, как собрать такие данные, это вот это вот большой челлендж становится.

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

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

это будет работать. А там другая тоже модель, и они вместе поговорили, и вместо столика ты улетел в Исландию. Да. Но вообще Google еще в 2016 году дуплекс анонсировал, да, когда он там звонит за тебя и записывается на стрижку. И мы там с ребятами были очень вдохновлены этой идеей, и нас очень возмущало, что почему вроде есть синтез, вроде

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

и заказывали столики нашей модели. В общем, это было супер весело и смешно. Она тупила, она запиналась. Но один раз у нас получилось это сделать, и как раз-таки эта демка пошла в защитную презентацию, где моделька от начала и до конца, она заказала столики.

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

забыл название, но такие модели open-source точно есть. Но получится ли их им интегрировать в какую-то вашу бизнес-задачу, не уверен. Скорее всего, сейчас лучше будет работать пока еще связка какой-нибудь супербыстрый ISR от какого-нибудь там scribe-провайдера или еще кого-нибудь. какой-нибудь супер-быстрый LLM, Gemini, например, и какой-нибудь супер-быстрый Synthes, не знаю, какой-нибудь Eleven Labs Flash моделька. И в целом тут можно добиться latency в несколько, полторы секунды, если как-то

еще хитро-хитро предпочитывать результаты, можно еще меньше это сделать. И в целом это ready-to-go задачка. Здесь мы уже, наверное, больше упираемся в возможности диалогового движка. То, как этот диалоговый движок будет общаться с пользователем, как и ЛМК будет хорошо вести диалог.

Драйверы Индустрии и Будущие Тренды

То есть здесь синтез уже не так важен, как у меня. Ну, это вот задачи, которые мне очень важны. Мне вот очень срочно появилось решение, которое будет звонить и заказывать мне столик или проверять где-нибудь немецкую бюрократию по телефону. Но вообще за счет чего двигается... индустрия. Индустрия в плане там вообще всего то, что называется сейчас AI или в плане синтеза речи? В плане синтеза речи. В плане синтеза речи скорее синтез речи наступает на следы картинок и на следы лэмок. Он...

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

Синтез интегрирует какие-то подходы, которые позволяют эффективнее обучать модели. Новые GPU-шки выходят, мы можем обучать более большие модели. Например, мы раньше могли за неделю или за месяц обучиться на корпусе, а сейчас вышла новая GPU-шка. мы можем пять таких корпусов съесть и их все прибежать в процессе обучения. Также... Там новые архитектуры, новые подходы в обучении. Если в трансформер какой-нибудь новый вид attention или новый способ подсчета attention появляется,

Attention — это важный механизм внутри нейросети, практически ключевой. Если там появляется какая-то новая моего модификация, которая работает на 5%, быстрее все, все сразу ломятся туда и скорее его имплементят. Или, например, выходит какой-нибудь новый лосс. в ЛМках, да, GPT-3 появилась в том числе, там, благодаря RLCHF, да, то есть мы просим людей разметить пары ответов модели, и затем эту разметку используем для дообучения модели, подсказывать

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

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

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

Рынок Дублирования и Стартап Dubformer

Но сейчас спрос на него формирует этот интерес. То есть спрос со стороны, наверное, conversational AI, он, наверное, самый большой. То есть все хотят к этому пирогу прикоснуться к триллионному, да, с войс-агентами. Ну, и там, короче, куча стартапов, которые появились. Я, честно сказать, там, 2006,

В 2016 году мы обсуждали, типа, давайте делать стартап с синтезом речи. Я такой, господи, зачем? Есть Google, который синтез делает, есть Azure, который делает синтез. Куда еще? Типа, ну нет, на самом деле можно и сейчас делать новые стартапы в плане синтеза речи и тоже получать какой-то успех.

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

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

Во-первых, она очень классная. Много супер-классных студий, классно супер-работающих. Это достаточно недорого по сравнению с ценами в Европе на дубляж. Ну и, соответственно, там выходит какой-то новый сериал, то сразу какая-нибудь студия озвучки его дублирует.

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

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

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

еще есть какая-то картинка, на ней что-то происходит, какое-то действие, смысл и так далее. То есть задача такая более контекстная. Ну и, соответственно, как бы у нас есть с точки зрения продукта, да, мы делаем инструмент, который позволяет удобно использовать вот эти все state of the art технологии.

для синтеза речи, распознавания речи, перевода и так далее. А с технологической, с R&D точки зрения, мы как раз-таки пытаемся решить эту вот проблему трейд-оффа, качества и экспрессивности. Нам хочется... и экспрессивно, и качественно. Осталась еще такая фича плюс, липсинг, и все. Все будет. Ух.

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

А дальше идет уже, наверное, дубляж. Под дубляжом часто подразумевается, что мы дублируем дорожку. Под дублированием подразумевается, что голос оригинальный из нее исчезает. Исчезать он может разными способами. Мы можем его удалить и синтезировать. Эстетически. Мы можем взять исходные файлы и собрать их. Часто в контент-продакшене есть music and effects, которые содержат музыку и эффекты, которые на сцене, например, происходят. И сверху ты просто накладываешь голос, у тебя получается дубляж.

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

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

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

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

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

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

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

Заключение Выпуска

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

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

И дальше там резко вот это вот AI. Что тебе нравится больше, чем синтезированная за тебя рекламная интеграция? Больше этого, дорогие друзья, мне нравится, когда вы советуете 5 звезд в iTunes, твитите, ретвитите, рассказываете нас своим друзьям, а самое главное, слушайте подкаст «Подлодка». Это был выпуск про синтез речи. Всем спасибо, что нас слушали. Еще увидимся. Всем пока. пока пока пока пока пока спасибо

This transcript was generated by Metacast using AI and may contain inaccuracies. Learn more about transcripts.
For the best experience, listen in Metacast app for iOS or Android