Pull to refresh

Comments 113

PinnedPinned comments

Из личной переписки в ТГ с одним из авторов ext голосов:

Я связался с разработчиком программы "Балаболка" по по поводу недавнего релиза вашей компании. Вот что он ответил.

Как насчет того, чтобы внедрить эти движки Силеро в программу Балаболка?

Пожалуйста, никаких проблем. Пусть разработчики Silero создадут дистрибутив для установки их программного продукта в операционной системе Windows, пусть добавят поддержку работы через Microsoft Speech API (SAPI 5), и "Балаболка" сможет взаимодействовать с этими синтезаторами речи. Возможно, это всё уже реализовано, но я не сумел найти ссылку на такой дистрибутив. Как только установщик с поддержкой SAPI 5 будет готов и опубликован в сети, немедленно добавлю ссылку на свой сайт.

Мы на постоянку не занимаемся десктопной разработкой под Windows - но если кто-то из членов сообщества Хабра умеет такое и практикует, то можно было бы сделать крутой вклад в проект - сделать такой дистрибутив для MIT моделек. Они сразу заедут в балаболку, и как минимум незрячее комьюнити всей страны скажет большое спасибо.

Вау, это очень большая работа! Гиганский респект из Татарии)

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

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

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

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

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

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

мнение носителей языка

С детства слышу татарскую речь и на слух мгновенно выцепляю малейшие акценты. Сгенерировал и послушал на татарском (tat_albina), - потрясен. Произношение шикарное! На 5+. Никаких пауз, затыков. Ни единого лишнего звука.

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

П.С.

Пытаюсь запустить то же самое на локальной машине, - почему то зависает наглухо на строчке кода:

model, _ = silero_tts(language='ru', speaker=model_id)

Весь код:

import torch
from silero import silero_tts
from IPython.display import Audio, display
model_id = 'v5_cis_base'
device = torch.device('cpu')
model, _ = silero_tts(language='ru', speaker=model_id)
sample_rate = 48000
speaker = 'tat_albina'
example_text = 'Гомерем шулай узармы, Гел сине генә көтеп? Ялгызым өстәл янында суынган чәйләр эчеп.'
audio = model.apply_tts(text=example_text, speaker=speaker)
print(example_text)
display(Audio(audio, rate=sample_rate))

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

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

Пытаюсь запустить то же самое на локальной машине, - почему то зависает наглухо на строчке кода:

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

Всё никак руки не доходят перенести именно хостинг файлов к нам. На качественном хостинге цены у нас в 3 раза выше (где поддержка отвечает).

Попробуйте скачать файл для примера:

Если будет висеть, простой обход - скачать через колаб и юзать локально. Благо код с гитхаба тянется пока везде.

Да, действительно, через VPN отработало, спасибо.

Нет ли у вас бэклога задач для желающих контрибьютить?)

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

К.-черкесский? Это кабардино-черкесский? Что-то алфавит не тот...

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

Вероятно у нас диграфы не выделены как отдельные буквы, но синтез схавал в итоге нормально

Хотел поблагодарить команду за совместную работу над кабардинским синтезом. Удалось получить очень выское попадания ударений при синтезе. Кончно из за значительного присутствия в модели тюрских языков модель говорит с легким тюрским акцентом. Но это не портит произношение в целом, так обычно говорят кабардинцы и черкесы выросшие в Турции. А так модель легко воспроизводит наша экзотические триграфы которые есть только у нас и наших соседей из Дагестана и Чечни - кхъу, хъу, гъу. Кстати модель при траслитерации чеченских и даргинских, аварских . лезгинских букв на кабардинские аналоги вполне может озвучить и эти языки. Это первый профессиональный релиз кабардинского синтеза от такого серьезного игрока на российском рынке, как Silero. Их моделт неплахо конкурируют и с Яндексом и Сбером и Тиньуофф, а в категории лакаоьных моделей мне кажется у них и нет конкурентов по скорости и качеству.

Не очень понятно, почему список голосов из статьи и в ноутбуке отличаются? Причем не все голоса из этой статьи можно запустить через ноутбук

Обратите внимание, там несколько моделей.

Есть 2 base с ударениями и без. И есть ext модели (доехала только одна, не успели).

Набор голосов у base и ext разный. Но обе должны уметь в русский.

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

ext на башкирском то же умеет!

Модели синтеза речи созданы при поддержке Фонда содействия инновациям в рамках федерального проекта «Искусственный интеллект» национальной программы «Цифровая экономика Российской Федерации».

То есть это - самое настоящее народное достояние, и мы все можем его использовать?

Да. Государство Российская Федерация в лице ФСИ и нашей команды вам сделало подарок под новый год.

Тут как бы ещё и встречный вопрос к комьюнити, что было бы неплохо покрыть и оставшиеся крупные языки.

У меня другой попутный вопрос возник: Как оценивать "крупность"? Распространенность устной речи; распространенность письменных материалов; распространенность письменных нуждающихся в озвучке — это разные значения. Текст-в-речь связывает две среды.

По официальной переписи населения.

ФСИ 

А что за программа, если не секрет? Старт-1?

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

Нет, не старт-1. Старт это чисто про коммерцию.

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

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

Роли субъекта и объекта в фразе "Бытие определяет сознание" зависят именно от сознания.

Извиняюсь за детский вопрос, но можно использовать голоса из лицензии MIT в коммерческих целях с указанием источника? Если память не изменяет вроде у вас когда-то РЖД и ещё кто-то Вашей нейронкой озвучивал, но в те времена не было MIT лицензии

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

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

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

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

Ещё интерес представляют фразы в духе "автобус номер 22 едет до остановки {русское название}".

А как определяет условно русский "А" и башкирский "А"? Я когда делал синтез на 2 языках(башкирский и русский), даже когда использовал одни символы для согласных, уже был акцент. И исправил только когда начал использовать разные алфавиты для разных языков.

В первую очередь по спикеру. Во-вторую по ударению.

Звучит жутковато.

Как заставить его произнести слово модели через э?

Пресловутая э-фикация не поддаётся правилам русского языка. Писать просто через `э`

example_text = 'крут+ить мод+эли с+интеза р+усского язык+а.'

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

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

Вот, например, слово инфлюенсер почему-то читается с е, а тест с э.

Хардкодить ифами это конечно жестко. Словарный метод коррекции, с наполнением распространенными исключениями — вполне предсказуемо. Инфлюенсеры... оценивать надо статистически. 1 решивший слушать кафЕ против 9 считающими нормальным кафэ, это кмк не аргумент.

Именно что таких слов мало. Но каждое из них бьет больно. Не предлагаю "подтирать сопельки" каждому слову или каждому пользователю. Речь исключительно об основных словах с основным предпочтением фонетики.

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

А в чем сложность принять решение о наполнении самим? И даже менять его между релизами. Лишь бы механизм был.

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

Не люблю решать вещи несколько раз и переделывать. Как объективно найти все популярные слова в русском языке с эфикацией на данный момент мне неочевидно. Решение вставить 5 слов из комментария выше кажется неполным.

А в чем сложность принять решение о наполнении самим?

Точнее, приняли решение ничего не делать.

У вас есть шанс помочь развитию нашего проекта.

По идее могут помочь, если их распарсить. Есть ли такой же словарь, но в виде текста, а не сканов?

Я не встречал, но для вашего проекта обзавестись таким словарём не помешает.

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

Даже сотня кандидатов делов на десять минут.

Для нормальной озвучки текстов всё равно нужен препроцессор. Развернуть числа прописью, "проговорить" аббревиатуры (" и т.д." --> "и так далее"), транслитерировать англоязычные названия, принудительно указать ударения где модель ошибается и т.п.

Это название аккаунта просто. Решили увековечить автора вот так, реального имени не знаем.

Получается, что пасхалочка сгенерилась с "мяу".

Публичный лог правок:

  • Население Азербайджана обновлено в соответствии с переписью 2019 года (плюс россияне с родным азербайджанским языком);

  • Поправлен латинский азербайджанский алфавит, просто ошибка при написании статьи;

  • Правка текста примера на башкирском языке;

Исправь тогда тексты на башкирском в статье и в ноутбуке(Мин һәр саңғыраҡ тауҙа түбәнәгендә йәйенә йөҙөп йөрөйм.). Сейчас вообще какие то слова написаны, которых не существует. Можно взять как пример это: "Күп балалыларға былайҙа сертификат бирелә бит."

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

Тогда и белорусский пример поправьте:

'bel': '+Я в+ечарам любл+ю чыт+аць цік+авыя кн+ігі пры св+ятле нач+овай л+ямпы.',

на, допустим

'bel': 'В+ечарам +я любл+ю чыт+аць цік+авыя кн+ігі пры святл+е начнік+а.',

"Начовы" -- это окказионализм. В БР-словаре есть

начнік, -ка м.1. (лампочка) ночник;

Спасибо, поправим

То есть, "государство Российская Федерация в лице ФСИ и вашей команды сделало подарок" национальным государствам Азербайджану и Украине с их десятками миллионов носителей?

Сильно!

Вот статистика численности двадцати крупнейших народов по последней переписи населения
https://www.perplexity.ai/search/chislennost-dvadtsati-samykh-k-Q0GasGi4QkyYviPFFVorpQ#1

Я всё ждал, когда появится такая ветка комментариев. Но такой наброс не очень работает (точнее работает, но ровно в обратную сторону). Поясню почему.

Во-первых, указывать надо официальные источники, например перепись 2020 года, а не фантазии нейросетей. Вот ссылка.

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

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

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

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

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


Вот ссылка

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

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

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

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

Не нахожу ничего заслуживающего интереса или благодарности в ответе автора - а Вы находите?

Скоро Артас заговорит на татарском?)))

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

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

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

Но такого я даже у англоязычных моделей пока что не встречал.

Ну есть сервисы, которые предлагают до посинения фармить промпт для ЛЛМ. Но одной кнопки "сделай такую-то эмоцию", работающей в 95% случаев я тоже не видел.

А насколько теперь легко реализовать клонирование голоса на этих языках?

В принципе возможно, но тут всегда вопрос конечности времени и ресурсов.

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

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

Мы же по сути это информацию аггрегируем и преобразовываем в новые формы.

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

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

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

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

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

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

В принципе стало понятно, почему мы не смогли записать языки ЧР и Дагестана:

Скрытый текст

Искали мы-то через Телеграм и HH в основном. На авито сходить не догадались.

Это круто, но вопрос, а как можно запустить, чтобы озвучка была моим голосом (или совершенно другой голос)?

Такой возможности у библиотеки нет.

Жаль, а то у меня в планах создать свою оффлайн голосовую колонку с голосом Глэдос.

У вас бот качественно озвучивает текст и имеет очень маленькую задержку, но мне надо без привязки к интернету

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

Интересно, а на русском был акцент, если одно слово ставить? А если одно предложение на русском, а одно на татарском?

А в словах с нетипичным ударением (не последний слог) модель ошибается?

Акцент есть и в первом случае и во втором.
С нетипичным ударением ошибок не было на татарском языке, но если долго искать, наверное, можно такое обнаружить с теми же омографами. Например, тут в последнем слове ошибается, т.к. это глагол в повелительном наклонении, омографичный отглагольному существительному: 'Тутырма өстәл өстендә утыра. Тутырманы артык тутырма'.

А этот акцент мешает использованию модели? То есть он звучит совсем мерзко, или просто как типичный татарин, который говорит по-русски?

Надо попробовать развернуть ваш синтезатор. Демки хорошо конечно звучат, на уровне elevenlabs reader прямо

Мы выбрали лучшие голоса для статьи. Голоса очень сильно отличаются по субъективному восприятию даже у оригинальных аудио. Плюс допустим у кабардино-черкесского русский голос получился неплохо, а родной язык - не очень. Хотя человек один, микрофон один, комната одна. Есть ряд гипотез почему так, но потом как доедут языки кавказских республик РФ может что-то придумаем.

Здравствуйте! Ӟечбуресь! Очень рад был поучаствовать в таком важном проекте. Есть еще много нюансов по использованию (ударения иногда "плавают" или текст может быть прочитан с русским произношением). Для простых людей, конечно, очень удобно пользоваться синтезом через тг бот, очень надеюсь, что в скором времени там удмуртский голос обновится!

Да, тут есть определённые моменты.

Специфика состоит в том, что есть две модели base и base_no_stress. Первая в идеале требует простановки ударения на ВСЕ слова, включая русский язык (славянские языки). Вторая требует простановки ударения ТОЛЬКО на славянские языки.

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

В бот, конечно, надо докатить новую модель. Надеюсь руки дойдут рано или поздно. Вероятно в бот будем катить base_no_stress модель как меньшее зло.

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

Можно сказки озвучивать на родном языке теперь, к примеру.

Спасибо большое за огромный труд на благо всего общства!
Покрутил немного модель. Так и не понял, как обрабатываются знаки препинания кроме запятой. Интонация не управляется восклицательным и вопросительным знаком. Дефис работает гм... странно. Есть какое-то описание, какие символы (кроме букв) какой эффект имеют?

 Так и не понял, как обрабатываются знаки препинания кроме запятой.

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

Дефис работает гм... странно.

Дефис по идее влияет только на произношение слов. Его не стоит использовать как тире. Тире ещё бывают очень разные.

Есть какое-то описание, какие символы (кроме букв) какой эффект имеют?

Ещё должно быть троеточие одним символом. Список неалфавитных символов, которые видела модель:

!+,-.:;?—… (специально не убрал дефис, чтобы было видно, как он от тире отличается)

Плюсик понятное дело ударение перед гласной. Остальное не имеет прямо устойчивого прочтения.

Интонация не управляется восклицательным и вопросительным знаком.

Этого сейчас нет. Это будем следующим шагом решать, скорее всего только для коммерческих моделей.

Пробовал SSML, как будто вообще не работает.

Без реплицируемого примера вызова тяжело что-то сказать

Я взял ваш пример SSML:

ssml_sample = """
              <speak>
              <p>
                  Когда я просыпаюсь, <prosody rate="x-slow">я говорю довольно медленно</prosody>.
                  Потом я начинаю говорить своим обычным голосом,
                  <prosody pitch="x-high"> а могу говорить тоном выше </prosody>,
                  или <prosody pitch="x-low">наоборот, ниже</prosody>.
                  Потом, если повезет – <prosody rate="fast">я могу говорить и довольно быстро.</prosody>
                  А еще я умею делать паузы любой длины, например две секунды <break time="2000ms"/>.
                  <p>
                    Также я умею делать паузы между параграфами.
                  </p>
                  <p>
                    <s>И также я умею делать паузы между предложениями</s>
                    <s>Вот например как сейчас</s>
                  </p>
              </p>
              </speak>
              """
speaker = "ru_alfia2"

audio = model.apply_tts(text=ssml_sample,
                        speaker=speaker,
                        sample_rate=sample_rate)
print(example_text)
display(Audio(audio, rate=sample_rate))

Правильный пример вызова такой:

sample_rate = 48000
ssml_sample = """
              <speak>
              <p>
                  Когд+а +я просып+аюсь, <prosody rate="x-slow">+я говор+ю дов+ольно м+едленно</prosody>.
                  Пот+ом +я начин+аю говор+ить сво+им об+ычным г+олосом,
                  <prosody pitch="x-high"> +а мог+у говор+ить т+оном в+ыше </prosody>,
                  +или <prosody pitch="x-low">наобор+от, н+иже</prosody>.
                  Пот+ом, +если повез+ёт – <prosody rate="fast">+я мог+у говор+ить +и дов+ольно б+ыстро.</prosody>
                  +А ещ+ё +я ум+ею д+елать п+аузы люб+ой длин+ы, наприм+ер дв+е сек+унды <break time="2000ms"/>.
                  <p>
                    Т+акже +я ум+ею д+елать п+аузы м+ежду пар+аграфами.
                  </p>
                  <p>
                    <s>+И т+акже +я ум+ею д+елать п+аузы м+ежду предлож+ениями</s>
                    <s>В+от наприм+ер к+ак сейч+ас</s>
                  </p>
              </p>
              </speak>
              """
speaker = "ru_alfia"

audio = model.apply_tts(ssml_text=ssml_sample,
                        speaker=speaker,
                        sample_rate=sample_rate)
display(Audio(audio, rate=sample_rate))

Обратите внимание на ударения и параметр ssml_text.

Эти модели не содержат встроенный акцентор и омограф по очевидной причине, он вынесет в модуль silero-stress.

О, спасибо большое

Из личной переписки в ТГ с одним из авторов ext голосов:

Я связался с разработчиком программы "Балаболка" по по поводу недавнего релиза вашей компании. Вот что он ответил.

Как насчет того, чтобы внедрить эти движки Силеро в программу Балаболка?

Пожалуйста, никаких проблем. Пусть разработчики Silero создадут дистрибутив для установки их программного продукта в операционной системе Windows, пусть добавят поддержку работы через Microsoft Speech API (SAPI 5), и "Балаболка" сможет взаимодействовать с этими синтезаторами речи. Возможно, это всё уже реализовано, но я не сумел найти ссылку на такой дистрибутив. Как только установщик с поддержкой SAPI 5 будет готов и опубликован в сети, немедленно добавлю ссылку на свой сайт.

Мы на постоянку не занимаемся десктопной разработкой под Windows - но если кто-то из членов сообщества Хабра умеет такое и практикует, то можно было бы сделать крутой вклад в проект - сделать такой дистрибутив для MIT моделек. Они сразу заедут в балаболку, и как минимум незрячее комьюнити всей страны скажет большое спасибо.

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

И небольшой фидбэк на белорусские голоса. Анатолий - это точно не Александр, который по телевизору? :D В общем, Анатолий звучит прямо вообще супер. Аутентично, правильно. Дмитрий и Лариса намного более мягкие, но по ощущениям как будто русского человека заставили читать белорусский текст. Разница особенно слышна на слове "чытаць". У Анатолия это именно правильное белорусское "чЫ". У Дмитрия и Ларисы там слышно чёткое "чИ".

Одна из гипотез тут попробовать base и base_nostress модели, и убедиться, что все ударения были правильно расставлены. Это всё-таки язык, где ударение играет важную роль.

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

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

Анатолий - это точно не Александр, который по телевизору?

Да хз, вроде нет, вроде обычный человек.

Я совсем не лингвист. Но в Беларуси отучился 11 лет в школе, и белорусский язык потом пол года ещё был в университете. Некоторые предметы (например История Беларуси) были только на белорусском языке. Так что просто написал свои ощущения :-)

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

В любом случае, спасибо большое за Вашу работу!

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

Можете сбросить фрагмент записей Дмитрия и Ларисы, чтобы там была буква "ч" в разных сочетаниях?

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

А вы, вероятно, запустили старую v4 якутскую модель, судя по имени спикера b_sah.

Попробуйте, пожалуйста, новую модель с голосом sah_zinaida, он из новой интерации.

Обратите внимание, что есть base модель и base_nostress.

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

Сегодня дошли руки проверить белорусский язык, на модели v5_cis_base, в Колабе.

model, example_text = silero_tts(language='bel', speaker=model_id)

И сразу затык:

AssertionError: Language not in the supported list ['ru', 'en', 'de', 'es', 'fr', 'ba', 'xal', 'tt', 'uz', 'ua', 'indic', 'cyrillic', 'multi']

Подскажите, что указывать для белорусского? 'cyrillic'?

OK оставил language='ru' (не уверен правильно ли это).

Из 3 предложенных белорусских голосов:

  • bel_anatoliy - звучит довольно аутентично, лучший вариант.

  • bel_dmitriy - явный русский акцент.

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

Возможно, установка language='ru' повлияла на акцент.

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

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

Что касается акцента, все дикторы говорили, что язык у них родной, они учили его в школе, итд итп

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

Несмотря на критику, ваша новая модель v5_cis_base - однозначно лучший синтезатор TTS для белорусского языка на сегодня. Раньше я пробовал вашу v3 с украинским голосом mikyta, транскрибировал белорусский текст украинскими буквами и расставлял ударения - получалось довольно неплохо, но всё же украинский акцент чувствовался местами. Например, слово "Магілёўскі" (Могилёвский) он произносил как "Магілёвскі". Сейчас же bel_anatoliy в v5 -- это несомненно новый уровень, поздравляю!

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

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

Внезапно, украинские голоса 'ukr_igor' и 'ukr_roman' очень хорошо озвучивают белорусский текст! Акцента почти нет.

Здорово, что сейчас у вас все 3 языка (русский, белорусский и украинский) реализуются одной моделью.

Это прикольно. А вы же ставили ударение, верно?

Да, конечно, текст был с расставленными ударениями.

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

С омографами в белорусском легче, т.к. письменная речь подстраивается под устное произношение. Например, в русском "молоко", "молоки" (железы) -- сложно определить ударение не зная наверняка. В белорусском "малако" и "малокі" -- если есть "о" или "ё" - они почти наверняка под ударением. Либо если есть сочетание слогов с гласными "...а...е..." либо "...я...е..." -- буква "е" чаще будет ударная.

Но это конечно всё не важно, модель-акцентор сама должна вытянуть эти закономерности из словаря.

Ну то есть в белорусском задача омографов отчасти упрощается за счёт фонетического, а не морфологического принципа орфографии, что, конечно, не меняет то, что ударение плавающее.

Спасибо большое за работу! Есть ли планы добавить югославские языки? Может помощь какая нужна для этого?

В целом изначальный план состоял в добавлении популярных языков РФ и стран СНГ.

По идее для добавления языка мы записываем пару часов аудио на этом языке + час на русском.

А про какие языки речь, я так понимаю, что серьско-ховатский всё таки считается у нас одним языком?

Сербский, хорватский, боснийский, черногорский. Они по-сути и есть сербско-хорватский, но чем дальше тем больше местных особенностей. Если вам записать аудио, добавите?

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

Sign up to leave a comment.

Articles