Локальная ИИ Qora для озвучки текста
Вчера вечером решил себя развлечь немного (не то, что можно было подумать!) и поставил локально нейронку Qora для TTS. TTS - это Text-To-Speach - болталка по простому - ты ей текст, она тебе - аудиофайл с речью по твоему тексту.
Надо отметить, что был опыт разворачивания нейронок плюс отдельно "болталки", написанной на питоне. Но данная реализация на Rust, чем и заслужила внимание. Ну вот не люблю я питон, ничего не поделаешь. И не кидайтесь тапками! :)
Итак, что могу сказать.
Плюс первый - размер. Очевидный бонус этой нейронки - всего 1 Gb. Ну да, не ровно, но сама модель весит 971 Mb, плюс "обвес". Плюс-минус гиг места на диске. Есть версии для *nix, MacOS и для Windows (но для него написано "в тестировании").
Второй плюс - она не требует GPU. Все-равно какая у вас видяха - хоть встроенная в мать. Данной реализации все-равно - работает на мощностях процессора.
Третий плюс - умная система генерации аудио, в моменте понимающая какая максимальная длина файла должна получиться исходя из процессора и оперативки, чтоб не грохнуть всю систему. У меня на 40 Gb оперативки и 12 ядрах Rizen, получались аудио 40 секунд примерно за 30 секунд. Но охлаждение процессора в момент непосредственной генерации напоминало пылесос "Вихрь" у соседей по коммуналке. :)
Четвертый плюс - "на борту" у неё 9 голосов на 10 языках, включая русский. Кстати, тут очень повеселил как ни странно переводчик в Chrome - включил перевод всей страницы и по неведомой причине, голос "Playful female" ("Игривая женщина"), был перведен как "Игривая самка" - ссылка в первом абзаце этого поста - можете сами убедиться.
Минусы - осутствие тонких настроек кроме выбора temperature и top-k для вариативности интонаций. Еще можно было б назвать минусом косяки с произношением некоторых окончаний. Но в целом, это нивелируется корректировкой этих двух параметров.
А вот что отдельно меня повеселило - это включение у неё режима дополнительных звуков - нейронка сама принимала решение "оживить" текст вздохами, и даже смехом. Особенно голос uncle_fu ("Дядюшка Фу"), который в документации описан как "Солидный мужчина", но по факту озвучка от его лица на дефолтных параметрах создавала впечатление, что говорит старый китаец, обкурившийся опиума.
К чему я? Да вот думаю новый формат постов замутить в другом канале. Тут-то аудио-видео не принимается как контент. Но голосом надиктовывать - не интересно. Я ж - "компутершик" - зачем мне самому напрягаться и диктовать аудио? Ну нет! я лучше потрачу два дня, зато потом не буду сидеть с микрофоном.
И выбор мой пал на голос ryan (по описанию в документации - "Динамичный мужской голос"). Мне он для задуманного подходит как нельзя лучше.
Но знаете на что похож? Представляете - муж не вовремя вернулся домой. Так вот, ryan - это голос любовника под кроватью, который шепотом просит любовницу подтолкнуть к нему трусы.