Некоторое время назад я был заинтересован поиском альтернативы функции «Текст в Речь» в Mac OS X под Linux и позднее под Windows. Мне хотелось сконвертировать целую статью или если это будет возможным книгу для прослушивания ее на смартфоне в вагоне метро.
Я первым делом, соответственно занялся поисками готовых решений. Но отчасти, безрезультатно. Либо же, они звучали на мой взгляд совершенно непригодно. Или, стоили денег. Я подумал — эу, одну статью. Покупать программу? И обратил внимание на открытую у себя в браузере вкладку Google Translate. Сначала я очень вдохновился этой идеей и подумал. Может быть скопировать всю статью туда, да просто попробовать послушать как она звучит? Посмотрел в Network куда и какие запросы отправляются на сервер. Подумал, что наверняка не получится просто так отправить запрос, да и сохранить результат, ведь это же сам Google! Но. Как оказалось. Мысли по поводу «ведь в этом нет ничего сверхъестественного» оказались более верны.
Все оказалось проще пареной репы. Необходимо было просто послать запрос с главными параметрами:
q, tl, textlen. Где q это желаемая строка, которую вы бы хотели озвучить. tl это язык на котором нужно читать и textlen длинна предложения. Максимальное число 100.
В конечном результате образовался подобный txt2speech gem
С помощью него можно легко проделать необходимую работу и получить нужный результат.
Пример использования скрипта
bin/txt2speech -r README.md -f -o example.mp3
Использование библиотеки:
2.1.2 :001 > require 'txt2speech'
=> true
2.1.2 :010 > f = Txt2Speech.new "Hello I am Google robot! Nice to meet you, hope you'll enjoy this script and will fork it"
=> #<Txt2Speech:0x000000029a3290 @text="Hello I am Google robot! Nice to meet you, hope you'll enjoy this script and will fork it", @lang="en">
2.1.2 :011 > f.save('out.mp3')
Более подробнее тут