Script: text to speech (Google) dari terminal

Hari ini saya membagikan kepada Anda skrip yang sangat berguna untuk mengonversi teks menjadi ucapan menggunakan mesin ucapan Google. Keuntungan utama skrip ini adalah "mengakali" batas 100 byte yang diberlakukan oleh Google. Sebenarnya, sejujurnya, itu menghormati batas ini tetapi mengirim semua baris secara otomatis, yang berarti bahwa batasan ini tidak diperhatikan oleh pengguna. Namun, yang paling menuntut akan memperhatikan bahwa kualitas konversi tidak sama dengan yang dapat kami peroleh di Google Terjemahan, terutama karena batasan ini dan tidak mungkin untuk meneruskan seluruh teks sekaligus. Sebagai poin positif, harus ditambahkan bahwa skrip ini juga memungkinkan Anda menentukan bahasa teks yang akan dikonversi.

Setelah diperjelas, mari kita lihat apa saja langkah-langkah yang harus diikuti.

tangga

1. - Buat file dengan nama t2s.sh.

2. - Salin konten berikut:

#! / bin / bash ################################ # Speech Script oleh Dan Fountain # # Dimodifikasi oleh UsemosLinux # # TalkToDanF@gmail.com # ############################### MASUKAN = $ * STRINGNUM = 0 ary = ($ {INPUT: 2}) echo "---------------------------" echo "Skrip Pidato oleh Dan Fountain" echo "TalkToDanF @ gmail.com "echo" --------------------------- "untuk memasukkan" $ {! ary [@]} "lakukan SHORTTMP [ $ STRINGNUM] = "$ {SHORTTMP [$ STRINGNUM]} $ {ary [$ key]}" LENGTH = $ (echo $ {# SHORTTMP [$ STRINGNUM]}) #echo "kata: $ key, $ {ary [$ key]} "#echo" ditambahkan ke: $ STRINGNUM "if [[" $ LENGTH "-lt" 100 "]]; lalu #echo memulai baris baru SHORT [$ STRINGNUM] = $ {SHORTTMP [$ STRINGNUM]} lainnya STRINGNUM = $ (($ STRINGNUM + 1)) SHORTTMP [$ STRINGNUM] = "$ {ary [$ key]}" SHORT [ $ STRINGNUM] = "$ {ary [$ key]}" selesai untuk kunci dalam "$ {! SHORT [@]}" do #echo "baris: $ key adalah: $ {SHORT [$ key]}" echo " Baris pemutaran: $ (($ key + 1)) dari $ (($ STRINGNUM + 1)) "mplayer" http://translate.google.com/translate_tts? yaitu = UTF-8 &tl = $ {1} & q = $ {SHORT [$ key]} "selesai

3. - Berikan izin eksekusi ke skrip:

sudo chmod + x t2s.sh

4. - Jalankan skrip yang lewat sebagai parameter: a) kode bahasa yang sesuai dengan teks, b) teks yang akan dikonversi. Sebagai contoh:

./t2s.sh id Ini adalah teks yang sangat menarik untuk diubah.
Kiat: beberapa emulator terminal memungkinkan Anda menempelkan teks hanya dengan menyeretnya. Jadi dimungkinkan untuk memilih teks di Firefox dan menyeretnya ke terminal.

Itu saja, semoga Anda menikmatinya.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   Yoyo dijo

    Keren sekali, terima kasih banyak 😉

    Dan betapa indahnya suara gadis itu, kupikir aku jatuh cinta 😛

    1.    darkguzz.dll dijo

      Permisi, dapatkah Anda membantu saya dengan bahasa China? Itu tidak mendeteksi karakter China, hanya pinyin.

  2.   bayangan dijo

    Ini bagus untuk skrip yang memeriksa surat atau untuk alarm yang dipersonalisasi yang ketika bangun memberi tahu Anda ramalan dan pesan yang tertunda xD

  3.   Yoyo dijo

    Di sini saya membuat video uji 😛 https://www.youtube.com/watch?v=O3IeK7PjA_0

    1.    ayo gunakan linux dijo

      Baik! Terima kasih!

  4.   benctrox.dll dijo

    Kedengarannya sangat bagus, saya hanya perlu menginstal mpg123 🙂

  5.   porter dijo

    Tube untuk menginstal mpg123 tapi itu keren, jika tidak menerima beberapa kata, dikatakan huruf tilde yang tepat dll.

    EH EH

  6.   paul honorato dijo

    Basis data virus telah diperbarui (?)

    1.    jalbrhcp.dll dijo

      apt update && ./t2.sh id Basis data virus telah diperbarui

  7.   Alexander dijo

    Hahaha Luar biasa, saya sudah punya beberapa kegunaan untuk itu, suara sensual tanpa ragu =), terima kasih sudah berbagi.

  8.   Jorge Moratila dijo

    Sebagai pengguna Mac OSX, saya tidak dapat menggunakan Script karena saya tidak memiliki mpg123, jadi dengan memodifikasi Script dan menggunakan VLC, kami dapat membiarkannya berfungsi dengan benar di Mac OS X.

    http://pastebin.com/C2Mkp1Qy

    1.    Rolo dijo

      Masalahnya adalah vlc pasti tetap aktif dan tidak menutup ketika selesai dijalankan dan Anda dapat menggunakan cvlc untuk mencegah antarmuka grafis dibuka

      1.    Rolo dijo

        itu bisa diletakkan
        cvlc –play-and-exit «https://translate.google.com/translate_tts?tl=$ái1-lex.europa.eu&q=$[SHORT[$key]}»
        sehingga menutup pada akhir reproduksi

  9.   neysonv.dll dijo

    Hai teman-teman, saya mendapatkan kesalahan ini, mari kita lihat apakah seseorang memberi tahu saya apa masalahnya
    Garis permainan: 1 dari 1
    Permintaan HTTP gagal: 404 Tidak Ditemukan
    Kesalahan [mpg123.c: 610]: Akses ke sumber daya http http://translate.google.com/translate_tts?tl=hola&q= yang gagal.

    1.    neysonv.dll dijo

      [kode] Baris bermain: 1 dari 1
      Permintaan HTTP gagal: 404 Tidak Ditemukan
      Kesalahan [mpg123.c: 610]: Akses ke sumber daya http http://translate.google.com/translate_tts?tl=hola&q= yang gagal. [/ kode]

    2.    ayo gunakan linux dijo

      Masalahnya adalah Anda menggunakan skrip yang salah.
      Saat Anda menjalankannya, Anda harus meneruskan bahasa teks sebagai parameter pertama, seperti yang ditunjukkan pada contoh di posting.
      Saya memberi Anda contoh lain:
      ./t2s.sh in Ini adalah contoh sederhana.
      Perhatikan bahwa setelah ts2.sh diikuti "en" (yang berarti "bahasa Inggris", yaitu bahasa Inggris). Untuk bahasa Spanyol, gunakan "es" dan kemudian frasa dalam bahasa yang ingin Anda ubah.
      Memeluk! Paul.

  10.   anonim dijo

    Anda tahu perintah bicara no? hehe

    espeak -v is-the «halo»

    1.    ayo gunakan linux dijo

      Ya tapi tidak sama. Suara ini jauh lebih baik. 🙂

      1.    catatan anonim dijo

        Kami setuju!
        Salam!

  11.   Sara dijo

    Bagi mereka yang memiliki masalah dengan mpg123 -q atau tidak menyukainya, Anda dapat beralih ke 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]}»

    1.    Guido dijo

      Lebih baik "mplayer –sangat tenang" sehingga tidak mengisi keluaran dengan teks

  12.   Jonathan dijo

    Ide bagus menggunakan google untuk aplikasi saya cocok untuk saya seperti sarung tangan.
    http://github.com/alfa30/t2v

  13.   darkguzz.dll dijo

    Satu pertanyaan lagi; Bisakah seseorang memberi tahu saya cara merekam audio keluaran ???

    1.    Jose GDF dijo

      Saya menjawab Anda sendiri, karena saya baru saja mendapatkannya. Menggunakan mpg123, saya telah mengubah baris 38 dari skrip, terlihat seperti ini:

      mpg123 -q -w audio.wav «http://translate.google.com/translate_tts?tl=$[1[&q=$[SHORT[$key]}»

      Saya telah menambahkan -w audio.wav. Ini membuat file wav dengan audio dari frase tersebut, tetapi karena saya telah meninggalkannya, itu tidak terdengar. Jika Anda juga ingin mendengar frasa tersebut, Anda harus menambahkan baris lain. Anda berdua akan terlihat seperti ini:

      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]}»

      Tentunya ini bisa dilakukan dengan cara lain yang lebih efisien dan bersih, tapi setidaknya itu berhasil untuk saya.

      1.    darkguzz.dll dijo

        Luar biasa José GDF, saya mencoba metode Anda dengan hasil yang sangat bagus, salam.

      2.    soymicmic dijo

        Untuk menghemat lalu lintas di eksekusi kedua, Anda dapat mereproduksi .wav yang Anda buat di eksekusi pertama

      3.    Jose GDF dijo

        Ya, menggunakan pemain yang telah kami instal. Misalnya, dengan VLC Player itu akan menjadi:

        vlc-audio.wav

        Nah, yang mengatakan vlc, kata pemain lain, termasuk yang bekerja dengan terminal.

        Dan untuk menghindari menimpa file setiap kali skrip digunakan, variabel harus digunakan untuk namanya. Nama yang akan dimasukkan pengguna (perintah baca) sebelum memulai ... Tapi itu akan membuat keriting 😀

  14.   drako dijo

    Saya melakukannya di PHP (untuk membuat audio untuk sistem telepon Asterisk *)

    <?php
    $ url = 'http://translate.google.com/translate_tts?ie=UTF-8&q={query}% 0A & tl = is & prev = input ';

    if (hitung ($ argv) <= 1) {
    $ name = nama dasar ($ argv [0]);
    die ($ nama. 'penggunaan:'. $ nama. '
    }
    perpindahan_larik ($ argv);
    $ query = implode ('', $ argv);
    $ filename = str_replace (array ('', ',', '.'), '-', $ 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, true);
    $ hasil = curl_exec ($ ch);
    curl_close ($ ch);

    $ path = getcwd (). '/'. $ nama file;
    file_put_contents ($ path. '. mp3', $ result);
    @exec ("sox {$ path} .mp3 -b 16 -r 8000 -t wavpcm {$ path} .wav");
    @unlink ($ path. '. mp3');

    1.    darkguzz.dll dijo

      Bagaimana kalau saya sudah berhasil merekam audio keluaran dengan perintah ini:
      arecord ~ ​​/ zhongwen.mp3 & ./t2s.sh zh ni hao; fg
      dan pada akhirnya ctrl + c untuk berhenti merekam.

      Saya belum pernah menggunakan php
      Tapi saat berlari:
      php5 text-to-speech.php adalah Halo
      konsola menyelenggarakan ini:
      format sox FAIL: tidak ada handler untuk ekstensi file `mp3 ′

      Setiap kontribusi sangat dihargai, saya akan mencoba lagi nanti.

  15.   Kirian dijo

    2 aplikasi untuk penerjemah bahasa google + terjemahan teks ke ucapan:
    http://www.linuxhispano.net/2014/05/29/traductor-de-google-voz/

  16.   José dijo

    Saya pikir ini adalah cara terbaik untuk mengonversi, suaranya tidak seburuk opsi lain untuk Linux> _
    Apakah ada cara untuk membuatnya membaca file teks biasa?
    Akan sangat berguna untuk mengubah seluruh buku menjadi audio

  17.   chuflas.dll dijo

    Yah, itu tidak berhasil untuk saya, saya tidak tahu mengapa, ini keluar:

    xxxxx: ~ / Documents / Linux $ ./t2s.sh adalah halo

    ---------
    Speech Script oleh Dan Fountain
    TalkToDanF@gmail.com
    ---------
    Garis permainan: 1 dari 1
    http_open: HTTP / 1.0 400 Permintaan Buruk
    http://translate.google.com: Tidak ada berkas atau direktori seperti itu

    Saya telah menginstal mpg123 dan saya telah melakukan sedikit tes dan tidak ada…. Terima kasih sebelumnya

  18.   Ignacio Cruz Martinez dijo

    Hei, naskah ini sangat membantu saya, baik untuk mendengarkan suaranya maupun untuk merekam kata-kata penerjemah.

    Sebenarnya, saya telah memodifikasi skrip untuk menyesuaikannya dengan kebutuhan yang saya miliki: Mengubah daftar kata dalam teks (lemario) menjadi ucapan; simpan suara saya di wav, konversikan ke ogg dan beri nama sesuai dengan kata baca.

    Saya melakukan ini di KDE menggunakan Kdialog untuk menentukan jalur tempat file dengan daftar kata berada dan direktori tempat saya ingin menyimpan audio suara.

    Ketika konversi dari WAV ke OGG selesai, itu membuat dua folder di mana wav di satu sisi dan ogg di sisi lain disimpan.

    Awalnya saya marah karena saya tidak membaca kata-kata dengan aksen dengan benar, tetapi saya menemukan bahwa Anda harus menambahkan "es & ie = UTF8" di kode. Sesaat saya lupa pengkodean karakter.

    Saya meninggalkan Anda kode skrip yang saya buat jika itu membantu Anda:

    ############################################### #####################

    #! / bin / bash

    ################################
    # Kuliah Text-to-speech #
    # Diadaptasi oleh Ignacio Cruz Martínez #
    # surat rahasia xD #
    ################################

    Kotak dialog #KDE untuk menentukan jalur dan nama lemmary
    soyunarchivo = $ (kdialog –inputbox «Masukkan jalur dan nama file (dengan ekstensi jika ada):»)

    Kotak dialog #KDE untuk menentukan folder tujuan untuk file suara
    path = $ (kdialog –inputbox «Masukkan path untuk menyimpan audio suara:»)

    # melalui cat semua baris file teks dibaca, setiap baris terdiri dari satu kata
    untuk saya di $ (kucing $ soyunfile)
    do
    echo $ i

    # convert to speech menggunakan google translate, jangan lupa encodingnya sehingga terbaca aksen
    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"

    # menggunakan ffmpeg untuk mengonversi file wav ke ogg
    ffmpeg -i "$ path" $ i.wav -acodec libvorbis "$ path" $ i.ogg
    dilakukan

    #dengan baris-baris ini folder dibuat untuk mengatur file suara di WAV atau OGG
    mkdir "$ path" WAV
    mv "$ path" *. wav "$ path" WAV

    mkdir "$ path" OGG
    mv "$ path" *. ogg "$ path" OGG

    #KDE kotak dialog untuk menunjukkan pekerjaan selesai
    kdialog –msgbox 'Proses dihentikan'

    ############################################### ###################

    Sekarang, apakah ada di antara Anda yang memiliki pengetahuan tentang lisensi untuk menggunakan file suara yang dihasilkan?

    Batasan hak cipta dan hal-hal terkait. Ini menarik minat saya karena saya berencana menggunakan beberapa file suara ini untuk mendukung orang-orang yang akan melek huruf, pada dasarnya ini adalah proyek nirlaba.

    Dan alat ini memiliki intonasi terbaik untuk bahasa Spanyol, sayangnya di Linux tidak ada yang serupa. Mbrola telah memberi saya banyak masalah untuk disiapkan dengan Gespeaker.

    Terima kasih dan sampai jumpa.

    1.    ayo gunakan linux dijo

      Tidak tahu ... harus melihat lisensi Google Translator.

  19.   Armando dijo

    Script tidak berfungsi untuk saya, ternyata itu masalah terkait dengan URL, bagi yang tertarik ini URL yang benar:
    http://translate.google.com/translate_tts?tl=es&q=Hola

  20.   tertawa terbahak-bahak dijo

    Halo! Saya telah melakukan tes dengan skrip Anda dan ketika menjalankannya saya diberitahu bahwa ia tidak dapat menemukan audio, jadi saya telah memasukkan URL dan tampaknya Tuan Google telah meletakkan captcha ...

  21.   ' dijo

    perbarui skrip