Sign in

Зарегистрируйтесь, чтобы стать полноправным участником сообщества Masterpro.ws.

Google Cloud Text to Speech API как квинтэссенция Света. Реминисценции

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

Смысл был в том, что всякая-разная сказочная нечисть — практически любая, без разбору и конфессиональных различий; ведьмы, лешие, бабы-яги, черти и много-много-много всякой-другой — априори должна быть занесена в реестр сил Добра, Света и Справедливости… по одной лишь простой причине: способность молниеносно перемещаться в пространстве, т. е. передавать с огромной скоростью по общемировым сетям массивы информации в любую точку известной нам области Вселенной — автоматически делает обладателя данной способности в конечном итоге приверженцем Прогресса и Демократии, противником Тоталитаризма и Тьмы.

 

Google Cloud Text to Speech API как квинтэссенция Света. Реминисценции
Google Cloud Text to Speech API как квинтэссенция Света. Реминисценции

 

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

 

 

Бумажного аналога книги (во как!) у меня тогда не было, только цифра. Я воспользовался одной из программок, конвертирующих текст в звук, бесплатным приложением к коей шел допотопный и кем-то уже взломанный коммерческий звуковой движок, что и дало мне возможность более-менее комфортно прослушать текст. Для своего времени воспроизведение слов было вполне приличным, и с безапелляционным максимализмом юности я безоговорочно отнес технологию text-to-speech (а заодно и безымянного умельца, хакнувшего прогу) к Войску Света... логично же, нет? Все, что способствует обмену мыслями между людьми - соединяет их и в итоге безусловно во благо, все, что этому противится (неважно, во имя каких целей) - козни Зла. Кто знает, возможно, именно эта книга в чем-то поспособствовала моему интересу к IT, когда выбирал для себя профессию. И, далее, моей всегдашней приверженности идеологии и идеям Open Source.

"Детское живет в человеке до седых волос." (с) Правда, порой в этой фразе писателя, увидевшего из зарешеченного подвального окошка севастопольской тюрьмы спускающиеся к морю мраморные лестницы сказочно-прекрасного Гель-Гью - заключен кардинально иной смысл, также способный предложить в корне иное прочтение антитезы Добра и Зла; но, следую IT-специфике Хабра, не будем сейчас углубляться в экзистенциальную психологию, вернувшись к более привычной местной аудитории области программирования...

ОК, в качестве ностальгического воспоминания об эпизодах первого знакомства с миром IT хотелось бы сегодня предложить читателям Хабра одну из разработок с полностью открытым исходным кодом. Которая, следуя описанной выше доктрине Света, представляет собой дружелюбный веб-интерфейс сразу нескольких API и призвана способствовать, по мысли автора, любым формам обмена мнениями между людьми самых разных языков и стран. Welcome, добро пожаловать, bienvenue.

 

Google Cloud Text to Speech API как квинтэссенция Света. Реминисценции
Google Cloud Text to Speech API как квинтэссенция Света. Реминисценции

 

Итак. Суть и основная логика приложения заключены в удобном клиенте Google Cloud Text to Speech API, выполненном на основе фреймворка Ruby on Rails 6 (новенький Bootstrap 5, Webpacker, jQuery, эффектные Ajax Flash Messages) и предоставляющем возможность качественной, на основе технологий Google (WaveNet) озвучки текста. В качестве дополнительных фичей идут возможность "налету" перевода от Google Translate API и прозрачное сохранение звуковых файлов в Amazon ES3 либо иное совместимое (Google Cloud Storage, Microsoft Azure Storage) хранилище. Плюс кое-какие приятные мелочи: поддержка SSML, произвольное наименование и различные форматы генерируемого аудио, управление файлами хранилища из веб-интерфейса приложения, здесь же возможность скачать или только лишь прослушать звук, не загружая его на ПК. Плюс самые разнообразные опции и триггеры (см. скриншот), влияющие на качество звука.

 

Google Cloud Text to Speech API как квинтэссенция Света. Реминисценции
Google Cloud Text to Speech API как квинтэссенция Света. Реминисценции

 

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

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

 

Но, возможно, главное в другом. Изюминка проекта в том, что вовсе не нужно быть программистом, чтобы работать с данным приложением; также нет ни малейшей нужды что-либо ломать и хакать, обеспечивая себе перманентно бесплатное использование вышеназванных сервисов. Описание кода содержит подробное пошаговое руководство, прочтя которое - практически любой непрограммист сумеет развернуть Google Cloud Text to Speech Pro onRails на бесплатном тарифном плане облачной PaaS-платформы Heroku (вам не понадобится устанавливать Ruby / Rails на вашем рабочем компьютере, будет достаточно Git-a и скриптов Heroku). У вас появится новый веб-сайт в домене третьего (от herokuapp.com) уровня, где вы станете единственным авторизованным пользователем, Google предоставит вполне солидные бесплатные лимиты использования API Text to Speech и API Translate (если только вы не соберетесь озвучивать "Войну и мир", этого вполне должно хватить), Amazon подарит вашему новому аккаунту аж целый год бесплатного обслуживания.

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

 

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

  1. Google не проверяет состояние счета вашей банковской карты. Вы можете привязать почти любую: на счете может не быть ни копейки, или даже счет может быть арестован. Проглотит, ему без разницы: ничего подобного отправке в холд $1, как принято на иных сервисах, здесь быть не должно, вы получаете доступ моментально. В том случае, если ничего не изменилось, конечно, и мой опыт продолжает оставаться актуальным. Можно попробовать привязать и виртуальную карту, но Ямани и Qiwi сейчас уже, вероятно, не пройдут (за Амазон я все еще ежемесячно плачу с Qiwi, но не за Google).
  2. Также сразу после привязки банковской карты вы получите (вероятно) сообщение в верхней части Google Console, предлагающее активировать бесплатный доступ ко всем API сроком на три месяца. Воспользуйтесь приглашением; в конце месяца вы получаете на мыло инвойс Гугля, что-нибудь вроде "Summary for Sep 1, 2021 - Sep 30, 2021 Total in RUB RUB 0.00." Рекомендую.

По окончании пробного периода будьте внимательны к расходам, ничто не помешает вам выключить для себя, при необходимости, тот или иной API. И - внимательно заранее просмотрите TOS; если не ошибаюсь, что-то около виртуальных $300 вы получаете ежемесячно от Google на доступы к API, этого в большинстве случаев хватит. Мой старый киевский приятель-скряга, под "заказ" которого и написана первая версия этого кода, уже третий год, как мне кажется, не платит Гуглю вообще ничего, хотя висящим на Heroku его приложением долгое время пользовался как минимум я, рефакторя прогу.

А вот пользоваться RapidAPI (агрегатор разнообразных API, в их числе и Google Cloud Translate API) не рекомендую: удобно, и даже ключ в формате JSON не нужен, но дорого. Что бы они там не болтали в своей рекламе насчет миллионов девелоперов, использующих их сервис... помнится, вечером первого же дня работы с RapidAPI я получил сообщение, что 80% моего лимита исчерпаны, хотя и ограничивался при тестах самыми короткими фразами. Поэтому REST в коде репозитория у меня закомментирован, оставил только для инфо.

 

Да, чуть было не забыл. Посмотреть код / линки на описание и быстрый старт / скачать здесь. Поблагодарить автора за глубокомысленную статью и полезный продукт, ругнуться на говнокод или даже выплеснуться просто так, под впечатлением прошедших "выборов" в ГД и/или ненависти к Амазону как к квинтэссенции капитализма, и к его заведомо проплаченным иностранным пиар-агентам - далее в комментах.


*Статья написана для Habr.com.

Оставить комментарий

Добавьте ваш комментарий

Комментарии в блоге