Все статьи

· Casimiro Ferreira· 3 мин чтения

Два голоса, все языки: Miro и Dii

  • phoonnx
  • TTS
  • OVOS
  • voice cloning
  • G2P
  • language inclusion

Послушайте их сейчас: демо голосов запускает Miro и Dii вживую в вашем браузере — выберите язык, введите предложение и слушайте. Без установки, без сервера.

Люди запоминают голос ассистента больше, чем его имя. Поэтому главный вопрос нашего партнёрства с OpenVoiceOS — практический: на кого должен быть похож ассистент, на каждом языке?

Ответ — Miro (мужской) и Dii (женский) — две голосовые идентичности, которые несутся через каждый язык, поддерживаемый OpenVoiceOS. Пользователь, который настроил ассистента в Лиссабоне, а позже переключился на немецкий, должен услышать того же знакомого говорящего. Один фирменный голос, все языки, принадлежащий сообществу.

Одна идентичность, много языков

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

Мы идём более трудной дорогой. Для каждого языка мы строим моноязычную модель — одна модель, один язык, обученная делать этот язык хорошо. Трюк, который связывает их воедино, — клонирование голоса: каждая моноязычная модель Miro клонируется из той же исходной идентичности, и точно так же для Dii. Результат — семейство помодельно-на-язык моделей, каждая из которых говорит как носитель, но все разделяют один и тот же тембр, один и тот же характер, ту же Miro-вость или Dii-вость. Вы получаете произношение уровня носителя и единую узнаваемую идентичность, вместо того чтобы менять одно на другое.

Эти модели обучаются и обслуживаются с помощью phoonnx — нашего открытого TTS-фреймворка на основе VITS, экспортируемого в ONNX, только для CPU. Голоса работают полностью офлайн; без облака, без ключа API, без данных, покидающих ваше оборудование. Внутри OpenVoiceOS плагин ovos-tts-plugin-phoonnx занимается их получением и загрузкой. Полную историю про оборудование и архитектуру смотрите в TTS, которая работает на картошке.

Исследования G2P, которые делают это возможным

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

phoonnx здесь намеренно гибок. Он может управлять целым спектром фонемизаторов — eSpeak, Gruut, Epitran, основанным на модели ByT5 G2P и языкоспецифичными инструментами там, где общие движки не справляются. Это напрямую связано с нашим более широким фонетическим стеком: наши исследования орфография-в-IPA и лузофонные фонемизаторы, которые мы построили для португальской семьи, питают одну и ту же цель — точное IPA для языков, которые крупные провайдеры TTS никогда не удосуживались тщательно смоделировать. Когда у языка нет хорошего готового фонемизатора, этот пробел и есть проект. Мы сначала делаем исследования орфографии-в-звук, а затем следует голос.

Две модели для каждого запрошенного языка

Вот конкретное предложение, и это сердце партнёрства: для каждого языка, о котором кто-то попросит, мы построим две модели TTS — Miro и Dii. Не дорожную карту из «когда-нибудь-может-быть»; постоянное обязательство. Попросите язык, и к нему придёт универсальная пара.

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

Это не обещание на потом. На момент написания этой статьи коллекция моделей phoonnx TTS на Hugging Face перечисляет 13 языков как минимум с одним выпущенным голосом, и у 8 из них — баскского, арабского, европейского португальского, астурийского, арагонского, фризского, окситанского и колумбийского испанского — уже доступны и Miro, и Dii.

Открытое и самостоятельно размещаемое

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

Если вашего языка ещё нет в списке, это не закрытая дверь — это запрос, ожидающий, когда его сделают.