Сегодня я делюсь с вами очень полезным скриптом для преобразования текста в речь с помощью движка Google Speech. Основное преимущество этого сценария заключается в том, что он «обходит» ограничение в 100 байт, установленное Google. На самом деле, если честно, он соблюдает это ограничение, но отправляет все строки автоматически, а это означает, что это ограничение остается незамеченным пользователем. Однако самые требовательные заметят, что качество преобразования не такое, как у Google Translate, в основном из-за этого ограничения и невозможности передать весь текст одним махом. В качестве положительного момента следует добавить, что этот сценарий также позволяет указать язык текста, который нужно преобразовать.
Уточнив, давайте посмотрим, какие шаги нужно предпринять.
меры
1.- Создайте файл с именем t2s.sh.
2.- Скопируйте следующий контент:
#! / bin / bash ################################ # Сценарий речи Дэна Фонтана # # Изменено UsemosLinux # # TalkToDanF@gmail.com # ############################### INPUT = $ * STRINGNUM = 0 ary = ($ {INPUT: 2}) echo "---------------------------" echo "Речевой сценарий Дэна Фонтана" echo "TalkToDanF @ gmail.com "echo" --------------------------- "для ключа в" $ {! ary [@]} "do SHORTTMP [ $ STRINGNUM] = "$ {SHORTTMP [$ STRINGNUM]} $ {ary [$ key]}" LENGTH = $ (echo $ {# SHORTTMP [$ STRINGNUM]}) #echo "word: $ key, $ {ary [$ ключ]} "#echo" добавление к: $ STRINGNUM "if [[" $ LENGTH "-lt" 100 "]]; затем #echo, начиная с новой строки SHORT [$ STRINGNUM] = $ {SHORTTMP [$ STRINGNUM]} else STRINGNUM = $ (($ STRINGNUM + 1)) SHORTTMP [$ STRINGNUM] = "$ {ary [$ key]}" SHORT [ $ STRINGNUM] = "$ {ary [$ key]}" завершено для ключа в строке "$ {! SHORT [@]}" do #echo ": $ key is: $ {SHORT [$ key]}" echo " Игровая линия: $ (($ key + 1)) из $ (($ STRINGNUM + 1)) "mplayer" http://translate.google.com/translate_tts? ie = UTF-8 &tl = $ {1} & q = $ {SHORT [$ key]} "готово
3.- Предоставьте скрипту права на выполнение:
sudo chmod + x t2s.sh
4.- Выполните сценарий, передав в качестве параметров: а) код языка, соответствующий тексту, б) текст, который нужно преобразовать. Например:
./t2s.sh ru Это очень интересный текст для преобразования.
Вот и все, надеюсь, вам понравится.
Как здорово, спасибо большое
А какой у девушки красивый голос, кажется, я влюбился 😛
Простите, вы можете мне помочь с китайским? Он не распознает китайские иероглифы, только пиньинь.
Это хорошо как для сценария, проверяющего почту, так и для персонализированного сигнала тревоги, который при пробуждении сообщает вам прогноз и ожидающие сообщения xD
Здесь я сделал тестовое видео 😛 https://www.youtube.com/watch?v=O3IeK7PjA_0
Хорошо! Спасибо!
Звучит очень хорошо, мне оставалось только установить mpg123 🙂
Мне пришлось установить mpg123, но это было круто, поэтому, если он не принимает некоторые слова, он говорит правильную букву галочки и т. Д.
EH EH
Обновлена вирусная база (?)
apt update && ./t2.sh ru Обновлена вирусная база данных.
Хахаха Отлично, у меня уже есть несколько применений, чувственный голос без сомнения =), спасибо, что поделились.
Как пользователь Mac OSX, у меня не было возможности использовать скрипт, так как у меня нет mpg123, поэтому, изменив скрипт и используя VLC, мы можем оставить его правильно работающим в Mac OS X.
http://pastebin.com/C2Mkp1Qy
проблема в том, что vlc наверняка остается включенным и не закрывается, когда он завершает выполнение, и вы можете использовать cvlc, чтобы предотвратить открытие графического интерфейса
это можно было бы поставить
cvlc –play-and-exit «https://translate.google.com/translate_tts?tl=$[$key]}»
чтобы он закрылся в конце воспроизведения
Привет, ребята, я получаю эту ошибку, давайте посмотрим, скажет ли мне кто-нибудь, в чем проблема
Игровая линия: 1 из 1
Ошибка HTTP-запроса: 404 Not Found
[mpg123.c: 610] ошибка: доступ к http-ресурсу http://translate.google.com/translate_tts?tl=hola&q= неудачный.
[code] Игровая линия: 1 из 1
Ошибка HTTP-запроса: 404 Not Found
[mpg123.c: 610] ошибка: доступ к http-ресурсу http://translate.google.com/translate_tts?tl=hola&q= неудачный. [/ код]
Проблема в том, что вы неправильно используете сценарий.
Когда вы запустите его, вы должны передать язык текста в качестве первого параметра, как показано в примере в сообщении.
Приведу еще один пример:
./t2s.sh в Это простой пример.
Обратите внимание, что после ts2.sh следует «en» (что означает «английский», то есть английский). Для испанского используйте «es», а затем фразу на том языке, который вы хотите преобразовать.
Объятие! Павел.
вы знаете команду говорить нет? хе-хе
espeak -v is-«привет»
Да, но не то же самое. Этот голос намного лучше. 🙂
мы согласны!
Привет!
Для тех, у кого проблемы с mpg123 -q или он не нравится, можно переключиться на mplayer
mpg123 -q «http://translate.google.com/translate_tts?tl=$[1-lex.europa.eu&q=$[SHORT[$key]}»
mplayer «http://translate.google.com/translate_tts?tl=$[1[&q=$[SHORT[$key]}»)
Лучше "mplayer -really-quiet", чтобы он не заполнял вывод текстом
Прекрасная идея использовать гугл для своих приложений меня устраивает.
http://github.com/alfa30/t2v
Еще один вопрос; Может кто-нибудь подскажет, как записать выходной звук ???
Я сам вам отвечаю, потому что только что получил. Используя mpg123, я изменил строку 38 скрипта, которая выглядит так:
mpg123 -q -w audio.wav «http://translate.google.com/translate_tts?tl=$[1[&q=$[SHORT[$key]}»)
Я добавил -w audio.wav. Это создает файл wav со звуком фразы, но, поскольку я оставил его, он не слышен. Если вы тоже хотите услышать фразу, вам придется добавить еще одну строку. Вы бы оба выглядели так:
mpg123 -q -w audio.wav «http://translate.google.com/translate_tts?tl=$[1[&q=$[SHORT[$key]})» &
mpg123 -q «http://translate.google.com/translate_tts?tl=$[1-lex.europa.eu&q=$[SHORT[$key]}»
Конечно, это можно было бы сделать другим более эффективным и чистым способом, но, по крайней мере, это работает для меня.
Отлично, José GDF, я попробовал ваш метод с очень хорошими результатами, привет.
Чтобы сэкономить трафик при втором выполнении, вы можете воспроизвести .wav, созданный при первом выполнении.
Ну да, с помощью установленного нами плеера. Например, с VLC Player это будет:
vlc аудио.wav
Ну кто говорит vlc, тот говорит любой другой плеер, в том числе те, которые работают по терминалу.
И чтобы избежать перезаписи файла при каждом использовании сценария, в качестве имени следует использовать переменную. Имя, которое пользователь поставит (команда чтения) перед запуском ... Но это будет завиток
Я сделал это на PHP (для создания аудио для телефонной системы Asterisk *)
$ url = 'http://translate.google.com/translate_tts?ie=UTF-8&q={query}% 0A & tl = is & prev = input ';
if (count ($ argv) <= 1) {
$ name = basename ($ argv [0]);
умереть ($ name. 'usage:'. $ name. '
}
array_shift ($ argv);
$ query = implode (', $ argv);
$ filename = str_replace (массив ('', ',', '.'), '-', $ query);
$ filename = str_replace ('-', '-', $ filename);
$ url = str_replace ('{query}', rawurlencode ($ query), $ url);
$ ch = curl_init ();
curl_setopt ($ ch, CURLOPT_URL, $ url);
curl_setopt ($ ch, CURLOPT_HEADER, 0);
curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, истина);
$ result = curl_exec ($ ch);
curl_close ($ ch);
$ path = getcwd (). '/'. $ filename;
file_put_contents ($ path. '. mp3', $ result);
@exec ("sox {$ path} .mp3 -b 16 -r 8000 -t wavpcm {$ path} .wav");
@unlink ($ path. '. mp3');
Как насчет того, что мне уже удалось записать выходной звук с помощью этой команды:
arecord ~ / zhongwen.mp3 & ./t2s.sh zh ni hao; fg
и в конце ctrl + c, чтобы остановить запись.
Я никогда не использовал php
Но при запуске:
php5 text-to-speech.php - это привет
консола размещает это:
форматы sox FAIL: нет обработчика для расширения файла `mp3 '
Любой вклад приветствуется, я попробую еще раз позже.
2 приложения для переводчика языка Google + перевод текста в речь:
http://www.linuxhispano.net/2014/05/29/traductor-de-google-voz/
Думаю, это лучший способ конвертировать, голос не так плох, как другие варианты для Linux> _
Есть ли способ заставить его читать простой текстовый файл?
Было бы очень полезно конвертировать целые книги в аудио
Ну, у меня не работает, не знаю почему, выходит:
xxxxx: ~ / Documents / Linux $ ./t2s.sh - привет
---------
Сценарий выступления Дэна Фонтана
TalkToDanF@gmail.com
---------
Игровая линия: 1 из 1
http_open: HTTP / 1.0 400 неверный запрос
http://translate.google.com: Данный файл или каталог отсутствует
У меня установлен mpg123, я провел небольшие тесты и ничего…. заранее спасибо
Здравствуйте, этот сценарий мне очень пригодился, как для прослушивания звука, так и для записи слов переводчика.
Фактически, я изменил сценарий, чтобы приспособить его к моей потребности: преобразовать список слов в тексте (лемарио) в речь; сохраните мой голос в wav, конвертируйте в ogg и назовите их в соответствии с прочитанным словом.
Я сделал это в KDE, используя Kdialog, чтобы указать путь, по которому находится файл со списком слов, и каталог, в котором я хочу сохранить голосовой звук.
Когда преобразование WAV в OGG завершено, он создает для меня две папки, в которых сохраняются wav с одной стороны и ogg с другой.
Сначала я был зол, потому что я неправильно читал слова с акцентами, но обнаружил, что вам нужно добавить в код «es & ie = UTF8». На мгновение я забыл кодировку символов.
Я оставляю вам код скрипта, который я сделал, на случай, если он вам поможет:
################################################ ####################
#! / Bin / Баш
#################################
# Синтез речи #
# Адаптировано Игнасио Крус Мартинесом #
# почта секретная xD #
#################################
Диалоговое окно #KDE для указания пути и имени леммарии
soyunarchivo = $ (kdialog –inputbox «Введите путь и имя файла (с расширением, если оно есть):»)
#KDE диалоговое окно для указания папки назначения для голосовых файлов
path = $ (kdialog –inputbox «Введите путь для сохранения голосового аудио:»)
# через cat читаются все строки текстового файла, каждая строка состоит из одного слова
для я в $ (cat $ soyunfile)
do
эхо $ я
# преобразование в речь с помощью Google Translate, не забудьте кодировку, чтобы он читал акценты
mpg123 -q -w "$ путь" $ i.wav "http://translate.google.com/translate_tts?tl=es&ie=UTF8&q=$i"
mpg123 -q "http://translate.google.com/translate_tts?tl=es&ie=UTF8&q=$i"
# использование ffmpeg для преобразования файлов wav в ogg
ffmpeg -i "$ путь" $ i.wav -acodec libvorbis "$ путь" $ i.ogg
сделанный
# с этими строками создаются папки для организации голосовых файлов в WAV или OGG
mkdir "$ path" WAV
mv "$ path" *. wav "$ path" WAV
mkdir "$ path" OGG
mv "$ path" *. ogg "$ path" OGG
Диалоговое окно #KDE для индикации завершения работы
kdialog –msgbox 'Процесс завершен'
################################################## ###################
Есть ли у кого-нибудь из вас знания о лицензии на использование сгенерированных голосовых файлов?
Ограничение авторских прав и связанных вещей. Это меня интересует, потому что я планирую использовать некоторые из этих голосовых файлов для поддержки людей, которые собираются стать грамотными, в основном это некоммерческий проект.
И дело в том, что у этого инструмента лучшая интонация для испанского языка, к сожалению, в Linux нет ничего подобного. Мброла доставила мне много хлопот, чтобы установить вместе с Gespeaker.
Спасибо и увидимся.
Понятия не имею ... пришлось бы смотреть лицензии переводчика Google.
Скрипт у меня не работал, видимо, это проблема, связанная с URL-адресом, для тех, кому интересно, это правильный URL:
http://translate.google.com/translate_tts?tl=es&q=Hola
Здравствуйте! Я проводил тесты с вашим скриптом, и при его выполнении он сказал мне, что не может найти звук, поэтому я ввел URL-адрес и кажется, что мистер Google поставил капчу ...
обновить скрипт