Bugün sizlerle Google'ın konuşma motorunu kullanarak metni konuşmaya dönüştürmek için çok kullanışlı bir komut dosyası paylaşıyorum. Bu komut dosyasının temel avantajı, Google tarafından konulan 100 baytlık sınırı "aşması". Aslında dürüst olmak gerekirse, bu sınıra saygı duyuyor ancak tüm satırları otomatik olarak gönderiyor, bu da bu sınırlamanın kullanıcı tarafından fark edilmediği anlamına geliyor. Ancak en talepkar olanlar, dönüşümün Google Translate ile elde edebileceğimiz kalitede olmadığını, esas olarak bu sınırdan dolayı ve metnin tamamını tek seferde geçirmenin mümkün olmadığını fark edeceklerdir. Olumlu bir nokta olarak, bu betiğin aynı zamanda dönüştürülecek metnin dilini belirlemenize izin verdiği de eklenmelidir.
Açıklığa kavuşturduktan sonra, izlenecek adımların neler olduğunu görelim.
adımlar
1. - T2s.sh adında bir dosya oluşturun.
2. - Aşağıdaki içeriği kopyalayın:
#! / bin / bash ################################## # Dan Fountain'dan Konuşma Senaryosu # # UsemosLinux tarafından değiştirildi # # TalkToDanF@gmail.com # ################################# INPUT = $ * STRINGNUM = 0 ary = ($ {INPUT: 2}) echo "---------------------------" echo "Dan Fountain'dan Konuşma Metni" echo "TalkToDanF @ gmail.com "echo" --------------------------- "" $ {! ary [@]} "anahtar için SHORTTMP [ $ STRINGNUM] = "$ {SHORTTMP [$ STRINGNUM]} $ {ary [$ key]}" UZUNLUK = $ (echo $ {# SHORTTMP [$ STRINGNUM]}) #echo "kelime: $ anahtar, $ {ary [$ key]} "#echo" ekleniyor: $ STRINGNUM "eğer [[" $ UZUNLUK "-lt" 100 "]]; sonra #echo yeni satırdan başlıyor KISA [$ STRINGNUM] = $ {SHORTTMP [$ STRINGNUM]} başka STRINGNUM = $ (($ STRINGNUM + 1)) KISA [$ STRINGNUM] = "$ {ary [$ key]}" KISA [ $ STRINGNUM] = "$ {ary [$ key]}" fi "$ {! KISA [@]}" do #echo "satırındaki anahtar için yapıldı: $ anahtar: $ {KISA [$ anahtar]}" yankı " Oynatma satırı: $ (($ key + 1)) / $ (($ STRINGNUM + 1)) "mplayer" http://translate.google.com/translate_tts? yani = UTF-8 &tl = $ {1} & q = $ {SHORT [$ key]} "bitti
3. - Komut dosyasına yürütme izinleri verin:
sudo chmod + x t2s.sh
4. - Parametre olarak geçen komut dosyasını çalıştırın: a) metne karşılık gelen dil kodu, b) dönüştürülecek metin. Örneğin:
./t2s.sh tr Bu dönüştürülmesi çok ilginç bir metin.
İşte bu, umarım beğenirsin.
Ne kadar havalı, çok teşekkür ederim 😉
Ve kızın sesi ne kadar güzel, sanırım aşık oldum 😛
Affedersiniz, Çince konusunda bana yardım eder misiniz? Çince karakterleri algılamıyor, sadece pinyin.
Bu, postayı kontrol eden bir komut dosyası veya uyandığınızda size tahmin ve bekleyen mesajları söyleyen kişiselleştirilmiş bir alarm için iyidir xD
Burada bir test videosu yaptım 😛 https://www.youtube.com/watch?v=O3IeK7PjA_0
İyi! Teşekkür ederim!
Kulağa çok hoş geliyor, sadece mpg123 kurmam gerekiyordu 🙂
Mpg123'ü yüklemek için tüp ama harika, eğer bazı kelimeleri kabul etmezse doğru bir tik harfi vb.
EH EH
Virüs veritabanı güncellendi (?)
apt update && ./t2.sh tr Virüs veritabanı güncellendi
Hahaha Mükemmel, zaten bunun için bazı kullanımlarım var, şüphesiz şehvetli sesim =), paylaştığınız için teşekkürler.
Bir Mac OSX kullanıcısı olarak, mpg123'e sahip olmadığım için Script'i kullanmam mümkün olmadı, bu yüzden Script'i değiştirip VLC kullanarak, Mac OS X'te düzgün çalışmasını sağlayabiliriz.
http://pastebin.com/C2Mkp1Qy
sorun, vlc'nin kesinlikle açık kalması ve yürütmeyi bitirdiğinde kapanmaması ve grafik arayüzün açılmasını önlemek için cvlc'yi kullanabilirsiniz.
koyulabilir
cvlc –play-and-exit «https://translate.google.com/translate_tts?tl=$ái1-lex.europa.eu&q=$[SHORT[$key]}»
böylece üremenin sonunda kapanır
Merhaba arkadaşlar bu hatayı alıyorum, bakalım birisi bana sorunun ne olduğunu söyleyecek mi
Çalma hattı: 1/1
HTTP isteği başarısız oldu: 404 Bulunamadı
[mpg123.c: 610] hatası: http kaynağına erişim http://translate.google.com/translate_tts?tl=hola&q= başarısız oldu.
[kod] Çalma satırı: 1/1
HTTP isteği başarısız oldu: 404 Bulunamadı
[mpg123.c: 610] hatası: http kaynağına erişim http://translate.google.com/translate_tts?tl=hola&q= başarısız oldu. [/ kod]
Sorun, komut dosyasını yanlış kullanmanızdır.
Çalıştırdığınızda, gönderideki örnekte gösterildiği gibi metnin dilini ilk parametre olarak iletmeniz gerekir.
Size başka bir örnek veriyorum:
./t2s.sh in Bu basit bir örnektir.
Ts2.sh'den sonra "en" ("ingilizce" anlamına gelir, yani İngilizce'dir). İspanyolca için, "es" yi ve ardından dönüştürmek istediğiniz dildeki ifadeyi kullanın.
Sarıl! Paul.
konuşma komutunu biliyor musun hayır? hehe
espeak -v "merhaba" dır
Evet ama aynı değil. Bu ses çok daha iyi. 🙂
katılıyoruz!
Selamlar!
Mpg123 -q ile sorunları olanlar veya beğenmeyenler için mplayer'a geçebilirsiniz.
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]}»
Daha iyi "mplayer - gerçekten sessiz", böylece çıktıyı metinle doldurmaz
Uygulamalarım için google'ı kullanmak bana bir eldiven gibi uyuyor.
http://github.com/alfa30/t2v
Bir soru daha; Birisi bana çıkış sesini nasıl kaydedeceğimi söyleyebilir mi ???
Size kendim cevap veriyorum, çünkü şimdi anladım. Mpg123 kullanarak, betiğin 38. satırını şu şekilde değiştirdim:
mpg123 -q -w audio.wav «http://translate.google.com/translate_tts?tl=$[1-lex.europa.eu&q=$[SHORT[$key]}»
-W audio.wav ekledim. Bu, cümlenin sesini içeren bir wav dosyası oluşturur, ancak bıraktığım gibi duyulmuyor. İfadeyi de duymak istiyorsanız, başka bir satır eklemeniz gerekir. İkiniz de şöyle görünürdünüz:
mpg123 -q -w audio.wav «http://translate.google.com/translate_tts?tl=$[1-lex.europa.eu&q=$[SHORT[$key]}» &
mpg123 -q «http://translate.google.com/translate_tts?tl=$[1-lex.europa.eu&q=$[SHORT[$key]}»
Elbette daha verimli ve temiz başka bir şekilde yapılabilir, ama en azından benim için çalışıyor.
Mükemmel José GDF, yönteminizi çok iyi sonuçlarla denedim, selamlar.
İkinci yürütmede trafikten tasarruf etmek için, ilk çalıştırmada oluşturduğunuz .wav dosyasını yeniden oluşturabilirsiniz.
Evet, kurduğumuz bir oynatıcı kullanıyoruz. Örneğin, VLC Player ile şöyle olur:
vlc ses.wav
Kim diyor vlc, terminalle çalışanlar da dahil olmak üzere başka herhangi bir oyuncu söylüyor.
Ve komut dosyası her kullanıldığında dosyanın üzerine yazmaktan kaçınmak için ad için bir değişken kullanılmalıdır. Kullanıcının başlamadan önce koyacağı (komutu okuyacağı) ad ... Ama bu kıvrımı kıvırmak olur 😀
PHP'de yaptım (bir Asterisk telefon sistemi için ses oluşturmak için *)
$ url = 'http://translate.google.com/translate_tts?ie=UTF-8&q={sorgu}% 0A & tl = & prev = girdi ';
if (count ($ argv) <= 1) {
$ isim = basename ($ argv [0]);
die ($ isim. 'kullanım:'. $ isim. '
}
dizi_shift ($ argv);
$ sorgu = implode ('', $ argv);
$ dosyaadı = str_replace (dizi ('', ',', '.'), '-', $ sorgu);
$ dosyaadı = str_replace ('-', '-', $ dosya adı);
$ url = str_replace ('{sorgu}', rawurlencode ($ sorgu), $ url);
$ ch = curl_init ();
curl_setopt ($ ch, CURLOPT_URL, $ url);
curl_setopt ($ ch, CURLOPT_HEADER, 0);
curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, doğru);
$ sonuç = curl_exec ($ ch);
curl_close ($ ch);
$ yol = getcwd (). '/'. $ dosya adı;
file_put_contents ($ yol. '. mp3', $ sonuç);
@exec ("sox {$ yol} .mp3 -b 16 -r 8000 -t wavpcm {$ yol} .wav");
@unlink ($ yol. '. mp3');
Bu komutla çıkış sesini kaydetmeyi zaten başardım:
arecord ~ / zhongwen.mp3 & ./t2s.sh zh ni hao; fg
ve sonunda ctrl + c kaydı durdurmak için.
Hiç php kullanmadım
Ama koşarken:
php5 text-to-speech.php Merhaba
konsola bunu barındırıyor:
sox FAIL formatları: “mp3 ′ dosya uzantısı için işleyici yok
Herhangi bir katkı çok takdir edilmektedir, daha sonra tekrar deneyeceğim.
Google dil çevirmeni + metin-konuşma çevirisi için 2 uygulama:
http://www.linuxhispano.net/2014/05/29/traductor-de-google-voz/
Dönüştürmenin en iyi yolu olduğunu düşünüyorum, ses Linux için diğer seçenekler kadar kötü değil> _
Düz bir metin dosyasını okutmanın bir yolu var mı?
Kitapların tamamını sese dönüştürmek çok faydalı olacaktır
Benim için işe yaramıyor, neden bilmiyorum, bu çıkıyor:
xxxxx: ~ / Documents / Linux $ ./t2s.sh merhaba
---------
Dan Fountain'dan Speech Script
TalkToDanF@gmail.com
---------
Çalma hattı: 1/1
http_open: HTTP / 1.0 400 Hatalı İstek
http://translate.google.com: Böyle bir dosya ya da dizin yok
Mpg123 yükledim ve küçük testler yaptım ve hiçbir şey yapmadım…. Şimdiden teşekkürler
Merhaba, bu senaryo hem sesi dinlemek hem de çevirmenin sözlerini kaydetmek için bana çok iyi hizmet etti.
Aslında, senaryoyu sahip olduğum bir ihtiyaca uyarlamak için değiştirdim: Metindeki (lemario) kelimelerin listesini konuşmaya dönüştürün; sesimi wav olarak kaydet, ogg'ye dönüştür ve okunan kelimeye göre isimlendir.
Bunu, kelime listesinin bulunduğu dosyanın bulunduğu yolu ve ses sesinin kaydedilmesini istediğim dizini belirtmek için Kdialog kullanarak KDE'de yaptım.
WAV'dan OGG'ye dönüştürme bittiğinde, benim için bir tarafta wav ve diğer tarafta ogg'nin kaydedildiği iki klasör oluşturur.
İlk başta, aksanlı kelimeleri doğru okuyamadığım için kızmıştım, ancak koda "es & ie = UTF8" eklemeniz gerektiğini fark ettim. Bir an için karakter kodlamasını unuttum.
Çalışırsa diye yaptığım betiğin kodunu bırakıyorum:
################################################## #####################
#! / Bin / bash
###################################
# Metinden konuşmaya ders #
# Ignacio Cruz Martínez tarafından uyarlanmıştır #
# posta gizlidir xD #
###################################
Lemmary yolunu ve adını belirtmek için #KDE iletişim kutusu
soyunarchivo = $ (kdialog –inputbox «Dosyanın yolunu ve adını girin (varsa bir uzantı ile):»)
Ses dosyaları için hedef klasörü belirtmek için #KDE iletişim kutusu
yol = $ (kdialog –inputbox «Ses sesini kaydetmek için yolu girin:»)
# kediye kadar metin dosyasının tüm satırları okunur, her satır tek bir kelimeden oluşur
$ (kedi $ soyunfile) i için
do
echo $ i
# google translate kullanarak konuşmaya dönüştürme, aksanları okuyabilmesi için kodlamayı unutmayın
mpg123 -q -w "$ yol" $ 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"
# wav dosyalarını ogg'ye dönüştürmek için ffmpeg kullanma
ffmpeg -i "$ yol" $ i.wav -acodec libvorbis "$ yol" $ i.ogg
yapılmış
# bu satırlarla, ses dosyalarını WAV veya OGG'de düzenlemek için klasörler oluşturulur
mkdir "$ yol" WAV
mv "$ yol" *. wav "$ yol" WAV
mkdir "$ yol" OGG
mv "$ yol" *. ogg "$ yol" OGG
İşin bittiğini gösteren #KDE iletişim kutusu
kdialog –msgbox 'İşlem sonlandırıldı'
################################################## ###################
Şimdi, üretilen ses dosyalarını kullanma lisansı hakkında bilginiz var mı?
Telif hakkı ve ilgili şeyler için sınırlama. Bu beni ilgilendiriyor çünkü bu ses dosyalarından bazılarını okuryazar olacak kişileri desteklemek için kullanmayı planlıyorum, temelde bu kar amacı gütmeyen bir proje.
Ve bu aracın İspanyolca dili için en iyi tonlamaya sahip olmasıdır, ne yazık ki Linux'ta benzer bir şey yoktur. Mbrola, Gespeaker ile bir araya gelmem için bana çok fazla sorun yaşattı.
Teşekkürler ve görüşürüz
Hiçbir fikrim yok ... Google Translator lisanslarına bakmak zorunda değil.
Komut dosyası benim için çalışmadı, görünüşe göre URL ile ilgili bir sorun, ilgilenenler için bu doğru URL:
http://translate.google.com/translate_tts?tl=es&q=Hola
Merhaba! Komut dosyanızla testler yapıyorum ve onu çalıştırırken bana sesi bulamadığını söyledi, bu yüzden URL'yi girdim ve Bay Google bir captcha koymuş gibi görünüyor ...
komut dosyasını güncelle