Сьогодні я ділюсь з вами дуже корисним сценарієм для перетворення тексту в мову за допомогою мовного механізму Google. Головна перевага цього сценарію полягає в тому, що він "обходить" обмеження в 100 байт, встановлене Google. Насправді, чесно кажучи, він дотримується цього обмеження, але відправляє всі рядки автоматично, а це означає, що це обмеження залишається непоміченим користувачем. Проте найвимогливіші помітять, що перетворення не такої якості, як та, яку ми можемо отримати в Google Translate, головним чином завдяки цьому обмеженню, і що неможливо передати весь текст за один раз. Як позитивний момент слід додати, що цей сценарій також дозволяє вказати мову тексту, що перетворюється.
З’ясувавши, давайте подивимось, які кроки слід виконувати.
заходи
1. - Створіть файл із іменем t2s.sh.
2. - Скопіюйте такий вміст:
#! / bin / bash ################################## # Сценарій мови від Dan Fountain # # Змінено 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 "слово: $ key, $ {ary [$ ключ]} "#echo" додається до: $ STRINGNUM ", якщо [[" $ LENGTH "-lt" 100 "]]; потім #echo починає новий рядок SHORT [$ STRINGNUM] = $ {SHORTTMP [$ STRINGNUM]} ще STRINGNUM = $ (($ STRINGNUM + 1)) SHORTTMP [$ STRINGNUM] = "$ {ary [$ key]}" SHORT [ $ STRINGNUM] = "$ {ary [$ key]}" fi виконано для ключа в рядку "$ {! SHORT [@]}" do #echo ": $ key: $ {SHORT [$ key]}" echo " Гра, що грає: $ (($ key + 1)) з $ (($ STRINGNUM + 1)) "mplayer" http://translate.google.com/translate_tts? тобто = UTF-8 &tl = $ {1} & q = $ {SHORT [$ key]} "готово
3. - Надайте дозволи на виконання сценарію:
sudo chmod + x t2s.sh
4. - Виконайте сценарій, що передається як параметри: а) код мови, що відповідає тексту, б) текст, який потрібно перетворити. Наприклад:
uk/t2s.sh uk Це дуже цікавий текст для перетворення.
Ось і все, сподіваюся, вам сподобається.
Як круто, велике спасибі 😉
І який гарний голос у дівчини, я думаю, я закохався 😛
Вибачте, чи можете ви мені допомогти з китайською? Він не виявляє китайських ієрогліфів, лише піньїнь.
Це добре, як для скрипта, який перевіряє пошту, чи для персонального будильника, який під час пробудження повідомляє вам прогноз та очікувані повідомлення xD
Тут я зробив тестове відео 😛 https://www.youtube.com/watch?v=O3IeK7PjA_0
Добре! Дякую!
Це звучить дуже добре, мені довелося лише встановити mpg123 🙂
Трубка для встановлення mpg123, але це круто, якщо вона не приймає деяких слів, вона пише правильну тильду і т.д.
EH EH
База даних вірусів оновлена (?)
apt update && ./t2.sh uk База вірусів оновлена
Ха-ха-ха, чудово, я вже використовую це, чуттєвий голос, без сумніву =), дякую за поділ.
Як користувач Mac OSX, мені не вдалося використовувати скрипт, оскільки у мене немає mpg123, тому, модифікуючи сценарій та використовуючи VLC, ми можемо залишити його працювати коректно в Mac OS X.
http://pastebin.com/C2Mkp1Qy
проблема полягає в тому, що vlc, безумовно, залишається увімкненим і не закривається, коли закінчує виконуватися, і ви можете використовувати cvlc, щоб запобігти відкриттю графічного інтерфейсу
це можна було б поставити
cvlc – відтворити і вийти «https://translate.google.com/translate_tts?tl=$[$key]}»
так, щоб він закривався в кінці розмноження
Привіт, хлопці, я отримую цю помилку, давайте подивимось, чи хтось скаже мені, в чому проблема
Ігрова лінія: 1 з 1
Помилка запиту HTTP: 404 не знайдено
[mpg123.c: 610] помилка: доступ до ресурсу http http://translate.google.com/translate_tts?tl=hola&q= невдалий.
[код] Ігровий рядок: 1 з 1
Помилка запиту HTTP: 404 не знайдено
[mpg123.c: 610] помилка: доступ до ресурсу http http://translate.google.com/translate_tts?tl=hola&q= невдалий. [/ код]
Проблема в тому, що ви неправильно використовуєте сценарій.
Коли ви запускаєте його, вам потрібно передати мову тексту як перший параметр, як показано в прикладі в дописі.
Я наводжу вам ще один приклад:
./t2s.sh в Це простий приклад.
Зверніть увагу, що після ts2.sh слід "en" (що означає "англійська", тобто англійська). Для іспанської мови використовуйте "es", а потім фразу на тій мові, яку ви хочете конвертувати.
Обійми! Павло.
ви знаєте команду говорити ні? хе-хе
espeak -v is-the «привіт»
Так, але не те саме. Цей голос набагато кращий. 🙂
ми погоджуємось!
Привіт!
Для тих, хто має проблеми з mpg123 -q або не подобається, ви можете перейти на mplayer
mpg123 -q «http://translate.google.com/translate_tts?tl=$[1-lex.europa.eu&q=$[КОРОТКА[$key]}»
mplayer «http://translate.google.com/translate_tts?tl=$[1[&q=$[SHORT[$key]}»
Краще "mplayer – дійсно тихо", щоб він не заповнював вихідні дані текстом
Чудова ідея використовувати google для моїх програм мені підходить як рукавичка.
http://github.com/alfa30/t2v
Ще одне питання; Хтось може сказати мені, як записати вихідний звук ???
Я сам вам відповідаю, бо я щойно зрозумів. Використовуючи mpg123, я змінив рядок 38 сценарію, виглядаючи так:
mpg123 -q -w audio.wav «http://translate.google.com/translate_tts?tl=$[1-lex.europa.eu&q=$[КОРОТКА[$key]}»
Я додав -w audio.wav. Це створює файл wav зі звуком фрази, але, оскільки я залишив його, його не чути. Якщо ви також хочете почути фразу, вам доведеться додати ще один рядок. Ви обидва виглядали б так:
mpg123 -q -w audio.wav «http://translate.google.com/translate_tts?tl=$[1-lex.europa.eu&q=$[КОРОТКА[$key]}» &
mpg123 -q «http://translate.google.com/translate_tts?tl=$[1-lex.europa.eu&q=$[КОРОТКА[$key]}»
Звичайно, це можна зробити іншим більш ефективним та чистим способом, але принаймні це працює для мене.
Відмінник Хосе GDF, я спробував ваш метод з дуже хорошими результатами, вітаю.
Щоб заощадити трафік під час другого виконання, ви можете відтворити файл .wav, який ви створили в першому
Ну так, використовуючи програвач, який ми встановили. Наприклад, з VLC Player це буде:
vlc-audio.wav
Ну, а хто каже vlc, говорить будь-який інший гравець, включаючи тих, що працюють через термінал.
А щоб уникнути перезапису файлу кожного разу, коли використовується сценарій, для імені слід використовувати змінну. Ім'я, яке користувач повинен поставити (прочитати команду) перед початком ... Але це було б завивати локон 😀
Я зробив це в PHP (для створення аудіо для телефонної системи Asterisk *)
<?php
$ url = 'http://translate.google.com/translate_tts?ie=UTF-8&q={запит}% 0A & tl = is & prev = input ';
if (count ($ argv) <= 1) {
$ name = basename ($ argv [0]);
die ($ name. 'use:'. $ name. '
}
array_shift ($ argv);
$ query = implode ('', $ argv);
$ filename = str_replace (array ('', ',', '.'), '-', $ query);
$ filename = str_replace ('-', '-', $ filename);
$ url = str_replace ('{запит}', rawurlencode ($ запит), $ url);
$ Ch = curl_init ();
curl_setopt ($ ch, CURLOPT_URL, $ url);
curl_setopt ($ ch, CURLOPT_HEADER, 0);
curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, істина);
$ результат = 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, я провів невеликі тести і нічого ... Спасибі заздалегідь
Гей, цей сценарій мені дуже добре послужив, і для прослуховування звуку, і для запису слів перекладача.
Насправді, я модифікував сценарій, щоб адаптувати його до потреби, яка у мене є: Перетворити список слів у тексті (lemario) на мову; зберегти мій голос у wav, перетворити на ogg і назвати їх відповідно до прочитаного слова.
Я зробив це в KDE, використовуючи Kdialog, щоб вказати шлях, де знаходиться файл зі списком слів, і каталог, в якому я хочу зберегти голосовий звук.
Коли перетворення WAV в OGG завершено, для мене створюються дві папки, де зберігаються wav з одного боку та ogg з іншого.
Спочатку це мене розлютило, бо він неправильно читав слова з наголосами, але я виявив, що в код потрібно додати "es & ie = UTF8". На якусь мить я забув кодування символів.
Я залишаю код сценарію, який я створив на випадок, якщо він працює:
#################################################### ######################
#! / бін / баш
###################################
# Лекція з перекладом тексту #
# Адаптовано Ігнасіо Крус Мартінесом #
# пошта секретна xD #
###################################
Діалогове вікно #KDE, щоб вказати шлях та назву леммари
soyunarchivo = $ (kdialog –inputbox «Введіть шлях та ім'я файлу (з розширенням, якщо воно є):»)
Діалогове вікно #KDE, щоб вказати цільову папку для голосових файлів
path = $ (kdialog –inputbox «Введіть шлях для збереження голосового звуку:»)
# через cat читаються всі рядки текстового файлу, кожен рядок складається з одного слова
для я в $ (cat $ soyunfile)
do
echo $ i
# перетворюючи в мову за допомогою google translate, не забувайте про кодування, щоб воно читало акценти
mpg123 -q -w "$ path" $ 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 "$ path" $ i.wav -acodec libvorbis "$ path" $ i.ogg
зроблений
#з цими рядками папки створюються для організації голосових файлів у форматі WAV або OGG
mkdir "$ шлях" WAV
mv "$ path" *. wav "$ path" WAV
mkdir "$ path" OGG
mv "$ path" *. ogg "$ path" OGG
Діалогове вікно #KDE вказує на те, що завдання закінчено
kdialog –msgbox 'Процес завершено'
#################################################### ####################
Тепер, чи має хтось із вас знання про ліцензію на використання сформованих голосових файлів?
Обмеження щодо авторських прав та пов’язаних речей. Це мене цікавить, тому що я планую використовувати деякі з цих голосових файлів для підтримки людей, які збираються стати грамотними, в основному це некомерційний проект.
І це те, що цей інструмент має найкращу інтонацію для іспанської мови, на жаль, в Linux немає нічого подібного. Мброла завдав мені чимало клопоту влаштуватися разом із Геспекером.
Спасибі і до зустрічі.
Не уявляю ... доведеться дивитись на ліцензії Google Translator.
У мене сценарій не працював, мабуть, це проблема, пов’язана з URL-адресою, для тих, хто зацікавлений, це правильна URL-адреса:
http://translate.google.com/translate_tts?tl=es&q=Hola
Привіт! Я проводив тести з вашим сценарієм, і, виконуючи його, він сказав мені, що не може знайти аудіо, тому я ввів URL-адресу, і, схоже, містер Google поставив капчу ...
оновити сценарій