Попробовал 6 сервисов и Python-библиотек text-to-speech (TTS), делюсь результатами
Всем привет! Меня зовут Александр Троицкий, я автор канала AI для чайников, и в этой статье я расскажу про мой опыт работы с разными сервисами TTS.
Библиотеки и сервисы, которые переводят текст в человеческую (text-to-speech или TTS), не новшество. Они уже 5-6-7 лет довольно популярны, а многие блогеры на YouTube используют смешной машинный голос как озвучку для своих роликов. Однако с последним хайпом на ИИ все больше и больше стартапов получает инвестиции на развитие, соответственно, новые сервисы вырастают как грибы после дождя.
Для своего пет-проекта по генерации контента я решил попробовать запустить автоматические релизы подкастов в Apple, Amazon, Spotify, Google Podcasts. Для этого мне пришлось повозиться с разными библиотеками озвучки (работаю с Python) и готовыми сервисами. Далее в этой статье я напишу короткие рецензии на некоторые из них. Рецензию я написал именно на эти сервисы и библиотеки, потому они быстрее всего гуглились. За рекламу этих сервисов и библиотек мне не платили, так что я постараюсь дать максимально беспристрастный отзыв.
gTTS
gTTS — библиотека от Google оказалась среднячком среди тех, что я рассматривал. Потыкав примеры, понял, что все-таки отличить ее от реального голоса можно легко, но все же она лучше Amazon Polly. Стоимость — считайте бесплатно.
Amazon Polly
Amazon Polly — продукт от AWS. Именно эту озвучку используют, чтобы сделать мемные видео про глупых роботов. Кажется, что последние 5-6 лет компания Джеффа Безоса просто перестала развивать продукт. Стоимость — почти бесплатно.
Conqui-AI
Conqui-AI выделяется среди предыдущих двух. У них есть открытая библиотека (если хочешь — раскатывай на своем железе) , есть своя платформа с API (решают вопросы с железом за тебя, просто обращайся в API) . Примеры их озвучки — классные. API стоит $20 за 10 часов сгенерированного аудио.
А еще у этой же группы разработчиков есть проект Bark. Как я понял по гитхабу, проект относительно молодой и его выложили на всеобщее обозрение совсем недавно. Он умеет говорить и петь, при этом в голос можно вставлять вздохи, «эээкание» и прочие атрибуты речи живого человека. Когда я сгенерировал аудио через Bark на своем компьютере, установив библиотеку локально, на всех моих аудио было много постороннего шума позади говорящего. Иногда — помехи, иногда шум улицы, иногда писк. Чаще всего эти звуки звучат крипово, но я бы сослался на то, что библиотека сравнительно новая и не до конца доработана.
Готовые сервисы
В отдельную категорию выделю различные сервисы, предоставляющие генерацию аудио через сайт и простой API. Их довольно много, но успел я протестировать всего один (не реклама, мне за это не платили) . Такие сервисы дают готовый максимально ванильный API, который может внедрить в свой сервис даже ребенок. Качество генерируемого аудио хорошее, иногда сложно отличить от настоящего человека. Большой минус — стоит это удовольствие недешево (примерно $40 за 50.000 слов) .
Pyttsx3
Pyttsx3 - это бесплатная библиотека Python. Голос получается очень синтетическим, его неприятно слушать. Кажется, что библиотека давно не обновлялась.
TesorFlowTTS
TesorFlowTTS — несмотря на популярность самого тензора среди дата саентистов, его TTS часть была заброшена примерно год назад: последний merge был сделан год назад, а официальные обновления от команды разработки были аж 2 года назад. По меркам развития AI индустрии это почти вечность.
Вывод
Если подытоживать, что я бы смотрел в сторону использования библиотеки Conqui-AI или какого-то платного сервиса, если вам нужно качественно переводить текст в аудио.
Кажется, что IT гиганты забили на этот рынок и не развивают его (примеры Гугл и Амазон подтверждают эту мысль), поэтому небольшие коллективы и стартапы начали выбиваться вперед. Думаю, что все закончится M&A сделками и поглощениями, а фаундеры AI стартапов смогут хорошо выйти в кеш.
Это статья — эксперимент, до этого я не писал на VC. Ваша обратная связь по стилю написанного будет очень кстати. Если я забыл какую-то библиотеку — пишите, я попробую ее тоже и, может быть, выложу вторую часть этой статьи.
Подписывайся!
Если интересно читать про AI как продукт — подписывайтесь на телеграмм, я пишу редко, но метко:
Вообще непонятно о чем обзор)
1. какие критерии отбора в этот шортлист?
Conqui2. какой язык?
3. где silero? Nemo? Какие-нибудь платные от Яндекса и даже Тинькофф или Speechify?
4. а если уж хорошо отбирать, то есть еще опция еще самому потренить Flowtron/Fastspeech/Tacotron, но да, это сильно опционально)
5. насколько я знаю, уже половина ютуба автоматизирована, по крайней мере в шортсах одни и те же голоса. Что за сервис их генерит? Вот это было бы полезно узнать)
6. что вообще сравниваем-то?)
Coqui
TesorFlowTTSTensorFlowTTS
спасибо за отзыв! буду учиться писать лучше.
1. я просто погуглил какое-то время и попробовал их в действии. пробовал те, кто были на первых местах в гугле по "text-to-speech python"
2. хорошее замечание, добавил в статью. это Python
3. Яндекс, Тинькофф, silero, Nemo мне не попались, когда я гуглил. Speechify знаю, не успел попробовать. Посмотрю их, спасибо за дополнение.
4. это скорее статья для чайников-новичков, а не дип лернинг специалистов.
5. можете прислать пример?
6. добавил таблицу - быстрый вывод по критериям в начале статьи. вы правы, надо было сделать этот вывод более явным.
PS вообще было бы очень клево почитать хороший обзор по автоматической генерации контента. Прям люто ратую) удачи в этом деле)
я думаю рассказать про свой проект по генерации контента в телеграмме и подкастах. только немного еще данных подсоберу, чтобы было интереснее :)
спасибо!
1. из python можно вызывать любое API, если что) необязательно именно на нем зацикливаться
2. я имел в виду русский/английский/etc., от языка речи очень много чего зависит. Например, русских речевых корпусов, готовых к обучению, не так много по сравнению с английскими, а следовательно качество будет хуже
5. вот такого барахла полно на ютубе. Просто полистал чуток шортсы и сразу нашел. Ролики с этим голосом 100% автоматически создаются: https://youtube.com/shorts/y1ZJXv9jGIA?feature=share
Вообще автоматизация ютуба сейчас очень актуальная тема, которая несколько месяцев особо развивается за счет AI прогресса. Просто несколько продуктов на эту же тему:
1. https://vidiq.com/ (вроде эксплорят идею полного цикла создания видео, но не знаю)
2. https://pictory.ai/pictory-features/script-to-video (тут прям полный цикл создания + есть свои TTS voiceover'ы, которые звучат сносно)
3. https://submagic.co/ (прикольные субтитры, которые все видят в шортсах/рилсах/тиктоках и т.д.)
Из TTS еще вспомнил IBM Watson, кстати
1. да я понимаю, что можно любое API из питона вызывать. просто я еще и библиотеки искал. наверное правильнее было написать, что я искал по двум запросам "text-to-speech api" & "text-to-speech python"
2. я искал английский. опять же, хорошее уточнение, добавлю в статью.
5. спасибо изучу! очень круто, что вы написали так подробно.
еще раз очень благодарю за такую подробную обратную связь. первый блин комом, но я буду улучшаться! :)
Вы написали о Flowtron, Fastspeech и Tacotron, в чем между ними принципиальная разница, кроме того, что их нужно самому тренировать. Вы работали с ними?
Разница в подходах, конечно. У каждой архитектуры есть свои проблемы
Советую в телеграме найти чат "Распознавание речи", там ребята подскажут больше, если интересно именно обучение своей модели. И да, синтез там тоже обсуждают :)
Очень полезно, спасибо, Александр!