Как заставить синтез речи петь, битбоксить и сходить с ума
Ролики, где роботизированный голос поёт, битбоксит или изображает вертолёт, — мемы уже много лет. Люди пробуют то же самое с современным синтезом речи и удивляются, почему он просто зачитывает странные буквы.
В этом руководстве — откуда взялись эти трюки, какой документированный синтаксис DECtalk за ними стоит и что вместо этого умеет современный ИИ-голос, например SuperClonica.
Откуда взялись трюки
Большинство трюков с пением и шумами сделаны на DECtalk — классическом формантном синтезаторе речи. Бесплатная игра NASA Moonbase Alpha озвучивает чат через DECtalk, и игроки прославились тем, что вводили в чат фонемные команды, заставляя своих астронавтов петь. DECtalk собирает звук по правилам, поэтому ему можно точно сказать, какой звук издать, как долго и на какой высоте.
Синтаксис пения в DECtalk
Документация DECtalk описывает формат: фонема в квадратных скобках, за которой в угловых скобках идут длительность и номер высоты; длительность указывается в миллисекундах, а номер высоты берётся из таблицы тонов, где перечислены ноты и частоты. Например, фонема ow с 400 и 13 в угловых скобках тянет один гласный звук 400 миллисекунд на одной ноте. Цепочки таких команд дают мелодии, а очень короткие быстрые последовательности — битбокс, звук мотора и «глюки». В зависимости от сборки DECtalk фонемный ввод может требовать включения, так что сверьтесь с руководством своей версии.
Почему современные ИИ-голоса так не умеют
Нейросетевой синтез речи, включая SuperClonica, учится на записях настоящей речи и читает текст так, как прочитал бы человек. Он не принимает команды фонем, длительности и высоты, поэтому строки DECtalk звучат как буквы или пропускаются, и петь по заданным нотам он не может. Это цена естественного звучания.
Что можно сделать с современным голосом
С подачей всё равно можно играть: скорость от 0.7 до 2.0 в бесплатном движке, запятые и точки для пауз, восклицательные и вопросительные знаки для мелодии фразы, слова, написанные так, как они должны звучать. Для юмора выберите голос персонажа, озвучьте короткие фразы и смонтируйте их в аудиоредакторе: повторы и реверс коротких кусочков дают много «глючных» эффектов без всяких фонемных кодов. Послушайте голоса бесплатно на их страницах с текстом на 30–100 символов.
Выберите подходящий инструмент
Для ретро-пения робота используйте DECtalk; в гайде про DECtalk рассказано, откуда его взять сегодня. Для естественной речи голосом персонажа или диктора на 31 языке используйте SuperClonica: поставьте движок командой python -m pip install superclonica-cpu или обучите свой голос в студии по записи на 5–10 секунд. Китайский пока не поддерживается.