Тёмный

Yandex Speechkit + Python = Text-to-speech synthesis, API 

Azzrael Code
Подписаться 12 тыс.
Просмотров 25 тыс.
50% 1

Опубликовано:

 

27 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 91   
@AzzraelCode
@AzzraelCode 3 года назад
Исходники здесь azzrael.ru/yandex-speechkit-python Спасибо Автору azzrael.ru/spasibo
@tallat_kod
@tallat_kod 2 года назад
хочу потоковое распознавание речи посмотреть
@mikhailv4686
@mikhailv4686 2 года назад
В яндекс есть ограничения, в тинькофе тоже самое? Можете сделать видео подробнее, показать полное написание кода? Интересует озвучивание больших текстовых файлов, например, сказок голосом алены в приподнятом настроении. Я пробовал демо, получается очень забавно. Сделайте такое же видео на примере тинькофа.
@AzzraelCode
@AzzraelCode 2 года назад
@@mikhailv4686 Синтез от Тинькова давно в планах, но руки не доходят ((. Но вообще у них очень хорошая документация особенно на гитхабе github.com/TinkoffCreditSystems/voicekit-examples , в т.ч. с примерами на разных языках. Про лимиты документации у них ничего не сказано, а на практике я их ещё не пробовал.
@mikhailv4686
@mikhailv4686 2 года назад
@@AzzraelCode я смотрел на гитхабе у Тинькова, всё так же мудрено, как у яндекса. Для новичков, типа меня самого, неподступно. Нужно начать, и всё дойдёт, куда надо сразу, поверьте) Месяц назад я обращался за помощью в тех поддержку яндекса за спич китом, ничего не ответили. Очень прошу вас записать видео по Тинькофу, как озвучить текст. Сервис, возможно ещё удобнее окажется, чем у яндекса.
@mikhailv4686
@mikhailv4686 2 года назад
Ещё я пользуюсь linux manjaro, можно ли отдельно показать, как конвертировать под linux lpsm формат в mp3?
@sergesc5882
@sergesc5882 20 дней назад
Огромное спасибо! Такие как ты двигают прогресс в массы. За всем уследить в наше время просто нереально, а еще и изучить самостоятельно до уровня применения - необходимо куча времени, проб и ошибок. А ты помогаешь пройти этот путь за кратчайшее время и с минимумом усилий!
@SHADOW91XO
@SHADOW91XO 8 месяцев назад
ЧЕЕЕЕЕЕЕЕЛ!!!!!!!!!!!!!!!!!!! Ты прям мееня обучил, крутяк, вопросов еще куча осталось кконечно. но все работает. КРУТЯЯЯЯЯЯЯЯЯЯЯЯК !!!!!!!!!!!!!!!!!!! Пасыба сенсей
@mironpartner
@mironpartner 3 года назад
Хочу продолжения!!!
@evgenykrylov9117
@evgenykrylov9117 2 года назад
Спасибо за видео, хочу продолжение
@LapshinOfficial
@LapshinOfficial 2 года назад
На кого рассчитаны ролики? Если на начинающих, то пояснений мало очень. Что делает функция которая у Яндекса в документации прописана. В какой последовательности идут Ваши функции и что выполняют и почему именно так написаны. С костылем по sox вообще нужно больше времени было уделить. (вроде для Python есть вообще sox библиотека) Прятать токены в Creds, новичку вообще это будет не понятно, где они прописан и что импортируются. В общем не получилось у Меня с первого раза повторить Ваш проект, если убрать команду конвертора (sox) из Вашего кода она тоже не работает. Пишу как есть просто.
@LapshinOfficial
@LapshinOfficial 2 года назад
root_path = os.path.dirname(__file__) target_path = 'c:\\_tmp\\_speechkit\\' Что делают эти строки, почему именно так? Зачем они написаны?
@LapshinOfficial
@LapshinOfficial 2 года назад
line 56, in write_file with open(target_path + filename + ".raw", "wb") as f: FileNotFoundError: [Errno 2] No such file or directory: 'c:\\_tmp\\_speechkit\\1640428923.raw' если убрать функцию конвертации то такая ошибка у Меня.
@AzzraelCode
@AzzraelCode 2 года назад
> На кого рассчитаны ролики? Все просто - это личный блог, мои заметки и рассчитаны они на меня ;) Я никого не обучаю, а лишь делюсь опытом. Часто это сумбурный поток сознания через который зрителю надо прорываться, но вроде бы бывает полезно. Так что сорри, я понимаю, стараюсь корректировать и работать над контентом, но получается с разным успехом. > Пишу как есть просто. Да не вопрос, так и надо, все норм. Я рад обоснованной критике.
@AzzraelCode
@AzzraelCode 2 года назад
Ваш вопрос это базовый уровень знаний питона. Если разжевывать с этого уровня, то к спичкиту мы придем часов через 20-30. Я этим заниматься никогда не буду, потому что лучше просто сначала пройти недельный курс по питону (на степике он бесплатный) и все станет на свои места. ~~ root_path = os.path.dirname(__file__) - путь до папки где лежит наш скрипт, кот мы запускаем. target_path = 'c:\\_tmp\\_speechkit\\' - путь куда скрипт складывает файлы озвучки, у вас должна быть создана или такая же папка, или вы должны указать свой путь ~~ > такая ошибка у Меня. У вас написана ошибка - файл raw не был создан. Соксу не с чем работать. А создан он не был, скорее всего, потому что папки target_path = 'c:\\_tmp\\_speechkit\\' у вас не создано.
@AlbertCartel
@AlbertCartel 3 года назад
Эта тема особо востребованная сегодня, в условиях развития видео контента. Трафика может мало, или по другим запросам ищут эту тему. Мне лично интересно и необходимо, английская озвучка текстов для моих видео.
@AzzraelCode
@AzzraelCode 3 года назад
Если говорить про Yandex SpeechKit то там переключение между языками делается очень просто - меняю 'lang': 'ru-RU' на 'lang': 'en-US'. ~~ Но вообще говоря за английской озвучкой Яндекс последнее место куда я бы я пошел ;) Есть очень много голосовых движков для англоязычной озвучки, выбор есть. На вики даже есть таблица сравнения TTS en.wikipedia.org/wiki/Comparison_of_speech_synthesizers и она достаточно свежая или вот такое www.g2.com/products/google-cloud-text-to-speech/competitors/alternatives. ~~ И есть мнение что лучше всего с англ справляется TTS от Microsoft, кот идет с виндой. Но это не точно ;)
@realnueprikolu
@realnueprikolu 5 месяцев назад
Ничего не нужно конвертировать включаешь запись в камстасии и запускаешь синтез речи потом в видеоредакторе отделяешь звук от видео одним кликом и готовый твой голос на полосе редактора в нужном формате мп3 или любой другой пишешь сразу внужный формат
@y18kotov
@y18kotov 2 года назад
отлично. спасибо!
@apilotf1
@apilotf1 Год назад
Доброго времени суток, Все сделал по инструкции а получаю такой ответ: line 6, in import requests ModuleNotFoundError: No module named 'requests' Почему такое может быть?
@АлександрГусев-у9ь
Хочу продолжение.
@ИванЯкунин-с8ж
@ИванЯкунин-с8ж 2 года назад
Спасибо за видео, хочу такую интеграцию для Ubuntu!
@AzzraelCode
@AzzraelCode 2 года назад
Так этож питон apt-get install python3.10-venv и дальше по видосу. Все почти тоже самое.
@mashnin
@mashnin 4 месяца назад
Плейлист про ffmpeg удалил?
@AzzraelCode
@AzzraelCode 4 месяца назад
да, старье всякое почистил
@mashnin
@mashnin 4 месяца назад
@@AzzraelCode Обновить не планируешь?
@AzzraelCode
@AzzraelCode 4 месяца назад
Маловероятно
@mashnin
@mashnin 4 месяца назад
@@AzzraelCode Будем искать:) Кстати, спасибо за видео. Помог разобраться с API Яндекса и сделать транскрибатора. А то лень стало запросы вручную писать😁
@ПродюсерскийцентрКА-Медиа
Красавчик!!!!
@Nik_tvnow
@Nik_tvnow 2 года назад
Здравствуйте, подскажите пожалуйста начинающему питонщику, если не сложно, два дня уже мучаюсь пытаюсь понять где ошибка в коде? Скрипт читает файл Test.txt: (Привет мир!) и преобразует его в mp3 файл. Проблема в том что mp3 файл звучит так: РџСЂРёРІРµ РјРёСЂ В чём проблема не могу понять. Подскажите если не сложно, буду признателен!
@AzzraelCode
@AzzraelCode 2 года назад
попробуйте open("text.txt", encoding="utf-8")
@Nik_tvnow
@Nik_tvnow 2 года назад
@@AzzraelCode Спасибо большое! Заработало))) Спасибо!!!
@Pavluntik
@Pavluntik Год назад
разница между этим и демкой с сайта только в рекламных вставках? все равно все придется прописывать в ручную
@AzzraelCode
@AzzraelCode Год назад
Ну конечно, я ж шоколадки не ем ;)
@Pavluntik
@Pavluntik Год назад
@@AzzraelCode не вижу связи )
@AzzraelCode
@AzzraelCode Год назад
Однако она есть ;)
@Iverh238
@Iverh238 Год назад
File "C:\Users\Iverh\Desktop\SpeechKit\__main__.py", line 9 target_path = 'C:\Users\Iverh\Desktop\SpeechKit esults' ^ SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape [Finished in 87ms] Что делать?
@AzzraelCode
@AzzraelCode Год назад
Например сделать так target_path = r'C:\Users\Iverh\Desktop\SpeechKit esults'
@ЕвгенСпицын
@ЕвгенСпицын 2 года назад
Совсем недавно испортился голос у Филиппа, стал сильно роботизированным и менее качественным. Вы не знаете, это только в демо версии так или везде?
@AzzraelCode
@AzzraelCode 2 года назад
Раньше эмоциональная окраска была доступна для всех голосов, теперь только для jane или omazh. Причем, что удивительно, для премиум (в тч и для Филиппа) эмоции тоже отключили. Как мне кажется они там что-то в целом подкрутили. Это в платной версии так.
@АзатИсхаков-й7и
@АзатИсхаков-й7и 2 года назад
хочу продолжения
@ЛеонидЧудинов-х5л
@ЛеонидЧудинов-х5л 2 месяца назад
хочу продолжение
@mikhailv4686
@mikhailv4686 2 года назад
Можно тоже самое сделать на Tinkoff speechkit?
@АнсорИкрамов
@АнсорИкрамов Год назад
Спасибо за видео! могу ли пополнить свой счет например на 200 руб и оплатить с этих денег озвучку?
@AzzraelCode
@AzzraelCode Год назад
Да, можно, но вы все равно при этом привязываете карту. Если вы сможете потратить больше, то с карты спишут.
@dolphin78
@dolphin78 Год назад
ничего не понятно, было бы лучше если бы была пошаговая инструкция с нуля начиная с командной строки, что копировать что вставлять, короче все пошагово, вообще нет ни одного подробного видео на ютубе для тех кто вообще не шарит в этом и было бы круто потом показали результат где вообще после всех манипуляций работает SpeechKit где его потом запускать
@AzzraelCode
@AzzraelCode Год назад
Так это видео не инструкция и не для тех кто "вообще не шарит". Если вам просто нужно озвучить текст, то зачем вам все это вообще. Возьмите Балаболку www.cross-plus-a.ru/balabolka.html, она хорошо озвучивает. При некоторых манипуляциях такую озвучку даже можно заливать на канал и спокойно ждать страйков ;))
@dolphin78
@dolphin78 Год назад
@@AzzraelCode как добавлять в балаболку добавлять голоса например Ермилова из онлайн сервисов? Или Алисы из Яндекс Браузера, где можно скачивать голоса?
@userrussia9718
@userrussia9718 Год назад
Traceback (most recent call last): File "C:\Users\PycharmProjects\pythonProject5\main.py", line 94, in convert(write_file(read_text())) File "C:\Users\PycharmProjects\pythonProject5\main.py", line 57, in write_file for audio_content in synthesize(text): File "C:\Users\PycharmProjects\pythonProject5\main.py", line 43, in synthesize raise RuntimeError("Invalid response received: code: %d, message: %s" % (resp.status_code, resp.text)) RuntimeError: Invalid response received: code: 401, message: {"error_code":"UNAUTHORIZED","error_message":"rpc error: code = PermissionDenied desc = Permission denied"}
@vl9110012010
@vl9110012010 Год назад
русский язык не ваш родной, да?..😅
@AzzraelCode
@AzzraelCode Год назад
Второй после php 🤪
@Евгений555-х1ы
@Евгений555-х1ы 2 года назад
Хочу продолжения!!!
@Cheboksarov
@Cheboksarov 2 года назад
хочу продолжение
@davidsuragan
@davidsuragan 3 месяца назад
Здарова. Сейчас бесплатно ли TTS с лимитам.
@villainmadless1503
@villainmadless1503 2 года назад
Хочу продолжения!!!
@alko_xo
@alko_xo 2 года назад
Вот прямо сейчас вот не жду и пишу в комментариях "Хочу продолжения"!
@АлександрВолков-ь7т
Спасибо за видео! Хотелось бы увидеть модель распознования текста из видео.
@groavmogaev9845
@groavmogaev9845 3 года назад
Хочу продолжения
@maroderqwertyth3389
@maroderqwertyth3389 3 года назад
Автор, ещё видео на эту тему)
@prosvetis
@prosvetis 2 года назад
Не понял в видео самого главного. Куда в вашем коде вставлять параметры iam token , folder id. Понятно что есть creds какая то подпапка ... и там есть какой то файл _init_.py. Но как это все делать и куда его класть этот файл не сказано.
@AzzraelCode
@AzzraelCode 2 года назад
Я делаю отдельный пакет creds и выношу туда токены только чтобы не показывать свои ключи в видео. Вы же можете в коде 1. удалить строку from creds import token, folder_id 2. добавить две переменных token = "jkasjdsj329823ljkasdlk" # где содержимое ваш IAM токен folder_id = "dfsdfdsfsdf" # где содержимое ваш folder_id
@prosvetis
@prosvetis 2 года назад
@@AzzraelCode Файл он присылает, но в нечитаемом формате raw. Вставил токен и фолдер ади, установил модуль 'request', установил sox, указал путь к sox.exe Но в итоге уперся в какую то ошибку. Куда дальше копать?: Traceback (most recent call last): File "D:\pyt\test.py", line 91, in convert(write_file(read_text())) File "D:\pyt\test.py", line 78, in convert subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True) File "C:\Users afae\AppData\Local\Programs\Python\Python39\lib\subprocess.py", line 951, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, File "C:\Users afae\AppData\Local\Programs\Python\Python39\lib\subprocess.py", line 1420, in _execute_child hp, ht, pid, tid = _winapi.CreateProcess(executable, args, FileNotFoundError: [WinError 2] Не удается найти указанный файл
@AzzraelCode
@AzzraelCode 2 года назад
@@prosvetis То есть с токенами разобрались? FileNotFoundError говорит что путь до sox указан не верный. Мой код подразумевает что sox.exe лежит в папке sox моего проекта. В вашем случае путь до sox.exe, вероятно, должен быть таким "D:\pyt\sox\sox.exe . Посмотрите на код в части root_path + "\sox\sox.exe", сделайте print( cmd ) - это команда, кот. должна безо всяких питонов исполняться в консоли.
@prosvetis
@prosvetis 2 года назад
@@AzzraelCode Получилось! Установил еще раз sox в папку где лежит проект и прописал прямой путь до файла, в моем случае "D:\\pyt\sox\sox.exe": # собираю команду конвертации cmd = " ".join([ "D:\\pyt\sox\sox.exe", "-r 48000 -b 16 -e signed-integer -c 1", target_path + filename + ".raw", target_path + filename + ".wav", ]) Спасибо за отзывчивость, с меня однозначный лайк и подписка!
@AzzraelCode
@AzzraelCode 2 года назад
Рад что все получилось ;)
@fil23ya
@fil23ya 8 месяцев назад
Как подключить к Asterisk в синхронном режиме?
@StariyHren
@StariyHren 2 года назад
Спасибо за статью, очень помогла в написании проги. Не планируется такой же, но по api v3? Говорят, там гораздо круче качество звука. Я попробовал сам сделать все по инструкции от Яндекса, но он ругается, что нету Folder_ID. А у меня он есть, но я не пойму, куда его указывать, куда не пробовал, везде не подходит
@AzzraelCode
@AzzraelCode 2 года назад
Рад что помог. Нет, пока планов по спичкиту нет. Я раньше его использовал для генерации контента и заработка на генеренке. Эта тема уже давно начала умирать, а после ухода адсенса и вовсе потеряла смысл. Если нарисуется что-то новое, то возможно...
@Scout_SZ
@Scout_SZ Год назад
а это нормально если регистрируешь платежный акк и вводишь данные карты свой то он 10 руб забирает?
@AzzraelCode
@AzzraelCode Год назад
Да. cloud.yandex.ru/docs/getting-started/quickstart-individuals "Для проверки валидности карты на вашем счете будет заблокирована незначительная сумма. Эти средства не списываются и будут снова доступны после завершения проверки и разблокировки. Срок разблокировки несписанных средств зависит от условий работы вашего банка."
@ЛеонидЛесин-ш1о
Тема интересная. Нужно продолжение.
@АлексейГоворухин-ч4м
Замечательно.
@RasskazSoldata
@RasskazSoldata 2 года назад
монитизировать можно данные голоса?
@AzzraelCode
@AzzraelCode 2 года назад
Смотря что за контент, как монетизировать и чьих запретов вы боитесь. Если речь про RU-vid и монетизировать видосы через Adsense, то, в целом, YT давно уже против серой генеренки (как раньше озвучка статейников под слайдшоу). Но, если контент норм, пусть даже и озвучен спичкитом (у меня есть до сих пор живые видосы с монетой озвученные вообще балаболкой) то может и прокатить.
@RasskazSoldata
@RasskazSoldata 2 года назад
@@AzzraelCode спасибо) а еще вопрос я озыучиваю видео роботами подключат ли мне монитезацию?
@AzzraelCode
@AzzraelCode 2 года назад
Сам по себе спичкит не означает запрет монетизации. В правилах Adsense есть ограничения на: "Загрузка автоматически созданного некачественного контента." Если вы озвучиваете роботами хороший и нужный контент, то монетизацию можно получить.
@RasskazSoldata
@RasskazSoldata 2 года назад
@@AzzraelCode спасибо.
@RasskazSoldata
@RasskazSoldata Год назад
@@AzzraelCode подскажите пожалуйста используя данный голос но вставляя картинки и делать из них видео подключат ли мне монетизацию?
@Кевин-к8з
@Кевин-к8з 2 года назад
6:35 - серебряный эксперт... платиновый эксперт... похоже, дорогой друг, выходя из текстового редактора вы несколько утрачиваете адекватность )
@AzzraelCode
@AzzraelCode 2 года назад
Апеллируя к вашему нику, призываю выражать поток ваших мыслей в кириллицу ставя своей целью донести свою позицию, а не ради ментальных поллюций.
@Кевин-к8з
@Кевин-к8з 2 года назад
О, спасибо, обожаю поллюции, во всех их проявлениях, но платиновый эксперт, он ведь имел ввиду звуковые, наверно, метки, или проверку на авторские права, мелодии, или, возможно, тембра, или ручную модерацию, отнесшую контент в категорию "гавно". Что же имелось ввиду? Каково ваше экспертное мнение?
@AzzraelCode
@AzzraelCode 2 года назад
Моя экспертность не имеет доказательной базы, но богатый профессиональный опыт, в т.ч. в части обогащения русскоязычной части глобальной сети интернета контентом уровня "говно", указанные выше лица таки правы и это мнение я упомянул в видео. ~~ Если же отбросить словоблудство, то решение о включении монетизации в случае с адсенсом это вообще черный ящик (и не только в ют). Но есть метрики которые определенно играют против шансов на включение монетизации, они описаны например здесь support.google.com/youtube/answer/1311392?vid=0-118800154937-1539179720097#zippy=%2C%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%B0-%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%B0-youtube%2C%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%B0-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B-adsense Примеры контента, который нельзя монетизировать: - видео, в которых зачитывается текст, написанный кем-то другим, например статья с сайта или из новостной ленты; - видео, которые создаются по шаблону, серийно или автоматически; Т.е. если ваш контент генеренка, то шансы на вкл монеты очень мал. Но, 1 - он не нулевой, 2 - зависит от темы, 3 - зависит от качества контента в целом и прочих метрик качества. ~~ Если вопрос про то как они это определяют, то у них определенно есть и автоматические инструменты, и команда модераторов (сливы методичек легко гуглятся). Сходите в толоку яндекса, там всегда есть задания по определению качества контента, в т.ч. видео. Думаю у яндекса +- теже принципы модерации что и у гугла.
@AzzraelCode
@AzzraelCode 2 года назад
Добавлю. Вот у меня есть канал, кот начинался с совершенно убогой генеренки: - зачитка заголовков постов с сайта через tts window 10 - слайдшоу из картинок + бесплатная музыка из библиотеки ют + ffmpeg - заливка через API YT немодерированным! приложением GCC (в 2020 году это ещё было можно) Затем пошел норм контент. На момент подачи на монету (2021 год) говноконтент был ~20%. Монету дали за 2 дня. Причем (сейчас вот глянул) монетизируется даже та старая генеренка по ставке 2.31. Тематика банальная женская. Такие дела. Но сейчас бы я так делать не стал...
@Кевин-к8з
@Кевин-к8з 2 года назад
Спасибо, Денис, за подробное объяснение. Думается, дела обстоят так - программно определить синтетический голос невозможно, особенно если вы крутили ползунки в видеоредакторе, (крутить на вкладке аудио!)), думаю даже музыку с авторскими правами можно, немного изменив тональность и скорость. А перед монетизацией ручная проверка обязательна, дело ведь серьезное ) и это просто как бы удобный предлог для отказа в монетизации. ...А вообще повеяло временами древними, почти былинными... Вы ведь отдали дань, так сказать... ...впрочем нет, молчу-молчу )))
@sergeik2151
@sergeik2151 2 года назад
тарифы - высокие, а не дорогии
@AzzraelCode
@AzzraelCode 2 года назад
Люблю грамарнаци ;) Вы бесконечный источник контента, пожалуй сто продолжайте.
@AzzraelCode
@AzzraelCode 2 года назад
Вот всегда было интересно цены они высокие или дорогие.
@yanakirillova6843
@yanakirillova6843 Год назад
Что гуманитарии тут делают))))
@Nik_tvnow
@Nik_tvnow 2 года назад
или вот: prnt.sc/9PNh1FJN7dIR
Далее
Brilliant Budget-Friendly Tips for Car Painting!
00:28
HTTP в 1С за 3 часа
3:23:54
Просмотров 446 тыс.
Brilliant Budget-Friendly Tips for Car Painting!
00:28