สคริปต์: ข้อความเป็นคำพูด (Google) จากเทอร์มินัล

วันนี้ฉันแบ่งปันสคริปต์ที่มีประโยชน์มากในการแปลงข้อความเป็นคำพูดโดยใช้เครื่องมือพูดของ Google ข้อได้เปรียบหลักของสคริปต์นี้คือ "หลีกเลี่ยง" ขีด จำกัด 100 ไบต์ที่กำหนดโดย Google ตามจริงแล้วจะเคารพขีด จำกัด นี้ แต่ส่งทุกบรรทัดโดยอัตโนมัติซึ่งหมายความว่าข้อ จำกัด นี้จะไม่มีใครสังเกตเห็นโดยผู้ใช้ อย่างไรก็ตามผู้ที่มีความต้องการมากที่สุดจะสังเกตเห็นว่าการแปลงไม่ได้มีคุณภาพเท่ากับที่เราได้รับใน Google แปลภาษาส่วนใหญ่เกิดจากขีด จำกัด นี้และไม่สามารถส่งผ่านข้อความทั้งหมดได้ในคราวเดียว ในแง่บวกควรเพิ่มว่าสคริปต์นี้ยังช่วยให้คุณสามารถระบุภาษาของข้อความที่จะแปลงได้

เมื่อได้รับการชี้แจงแล้วเรามาดูขั้นตอนในการปฏิบัติตาม

ขั้นตอน

1.- สร้างไฟล์ด้วยชื่อ t2s.sh

2.- คัดลอกเนื้อหาต่อไปนี้:

#! / bin / bash ################################## # สคริปต์คำพูดโดย Dan Fountain # # แก้ไขโดย UsemosLinux # # TalkToDanF@gmail.com # ################################################ INPUT = $ * STRINGNUM = 0 ary = ($ {INPUT: 2}) echo "---------------------------" echo "Speech Script โดย Dan Fountain" echo "TalkToDanF @ gmail.com "echo" --------------------------- "สำหรับคีย์ใน" $ {! ary [@]} "ทำ SHORTTMP [ $ STRINGNUM] = "$ {SHORTTMP [$ STRINGNUM]} $ {ary [$ key]}" LENGTH = $ (echo $ {# SHORTTMP [$ STRINGNUM]}) #echo "คำ: $ key, $ {ary [$ คีย์]} "#echo" เพิ่มใน: $ STRINGNUM "ถ้า [[" $ LENGTH "-lt" 100 "]]; แล้ว #echo เริ่มต้นบรรทัดใหม่ SHORT [$ STRINGNUM] = $ {SHORTTMP [$ STRINGNUM]} else STRINGNUM = $ (($ STRINGNUM + 1)) SHORTTMP [$ STRINGNUM] = "$ {ary [$ key]}" SHORT [ $ STRINGNUM] = "$ {ary [$ key]}" fi done for key in "$ {! SHORT [@]}" do #echo "line: $ key is: $ {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.- ดำเนินการส่งผ่านสคริปต์เป็นพารามิเตอร์: a) รหัสภาษาที่ตรงกับข้อความ b) ข้อความที่จะแปลง ตัวอย่างเช่น:

./t2s.sh en นี่เป็นข้อความที่น่าสนใจมากในการแปลง
เคล็ดลับ: ตัวเลียนแบบเทอร์มินัลบางตัวอนุญาตให้คุณวางข้อความได้โดยการลาก ดังนั้นจึงเป็นไปได้ที่จะเลือกข้อความใน Firefox และลากไปที่เทอร์มินัล

หวังว่าคุณจะสนุกกับมัน


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   โยโย่ dijo

    เจ๋งแค่ไหนขอบคุณมาก😉

    และเสียงที่ไพเราะของเธอฉันคิดว่าฉันตกหลุมรัก😛

    1.    Darkguzz dijo

      ขอโทษนะคุณช่วยพูดภาษาจีนได้ไหมมันตรวจไม่พบอักษรจีนมี แต่พินอิน

  2.   เงา dijo

    นี่เป็นสิ่งที่ดีสำหรับสคริปต์ที่ตรวจสอบจดหมายหรือการเตือนภัยส่วนบุคคลที่เมื่อตื่นขึ้นมาจะบอกการคาดการณ์และข้อความที่รอดำเนินการ

  3.   โยโย่ dijo

    ที่นี่ฉันทำวิดีโอทดสอบ😛 https://www.youtube.com/watch?v=O3IeK7PjA_0

    1.    มาใช้ linux กันเถอะ dijo

      ดี! ขอขอบคุณ!

  4.   Benctrox dijo

    ฟังดูดีมากฉันต้องติดตั้ง mpg123 🙂เท่านั้น

  5.   Portaro dijo

    Tube เพื่อติดตั้ง mpg123 แต่มันเจ๋งตรงที่ถ้ามันไม่ยอมรับบางคำมันจะบอกว่าเป็นตัวหนอนที่ถูกต้องเป็นต้น

    EH EH

  6.   ปาโบล โฮโนราโต dijo

    อัปเดตฐานข้อมูลไวรัสแล้ว (?)

    1.    จาลบรเอชซีพี dijo

      apt update && ./t2.sh en ฐานข้อมูลไวรัสได้รับการอัพเดต

  7.   อเล็กซานเด dijo

    ฮ่าฮ่าฮ่ายอดเยี่ยมฉันได้ใช้มันแล้วเสียงที่เย้ายวนอย่างไม่ต้องสงสัย =) ขอบคุณที่แบ่งปัน

  8.   ฮอร์เก้ โมราตียา dijo

    ในฐานะผู้ใช้ Mac OSX ฉันไม่สามารถใช้ Script ได้เนื่องจากฉันไม่มี mpg123 ดังนั้นด้วยการแก้ไข Script และใช้ VLC เราสามารถปล่อยให้มันทำงานได้อย่างถูกต้องบน Mac OS X

    http://pastebin.com/C2Mkp1Qy

    1.    Rolo dijo

      ปัญหาคือ vlc จะยังคงเปิดอยู่และไม่ปิดเมื่อดำเนินการเสร็จสิ้นและคุณสามารถใช้ cvlc เพื่อป้องกันไม่ให้เปิดอินเทอร์เฟซแบบกราฟิก

      1.    Rolo dijo

        ก็สามารถใส่ได้
        cvlc –play-and-exit « https://translate.google.com/translate_tts?tl=$[$key]} »
        เพื่อให้ปิดเมื่อสิ้นสุดการสืบพันธุ์

  9.   เนย์สัน dijo

    สวัสดีทุกคนฉันได้รับข้อผิดพลาดนี้มาดูกันว่ามีใครบอกฉันว่าปัญหาคืออะไร
    สายการเล่น: 1 จาก 1
    คำขอ HTTP ล้มเหลว: ไม่พบ 404
    [mpg123.c: 610] ข้อผิดพลาด: การเข้าถึงทรัพยากร http http://translate.google.com/translate_tts?tl=hola&q= ล้มเหลว

    1.    เนย์สัน dijo

      [code] สายการเล่น: 1 จาก 1
      คำขอ HTTP ล้มเหลว: ไม่พบ 404
      [mpg123.c: 610] ข้อผิดพลาด: การเข้าถึงทรัพยากร http http://translate.google.com/translate_tts?tl=hola&q= ล้มเหลว [/ code]

    2.    มาใช้ linux กันเถอะ dijo

      ปัญหาคือคุณใช้สคริปต์ผิด
      เมื่อคุณเรียกใช้คุณต้องส่งภาษาของข้อความเป็นพารามิเตอร์แรกดังที่แสดงในตัวอย่างในโพสต์
      ฉันยกตัวอย่างอื่นให้คุณ:
      ./t2s.sh ในนี่คือตัวอย่างง่ายๆ
      สังเกตว่าหลังจาก ts2.sh จะตามด้วย "en" (ซึ่งหมายถึง "ภาษาอังกฤษ" นั่นคือภาษาอังกฤษ) สำหรับภาษาสเปนให้ใช้ "es" ตามด้วยวลีในภาษาที่คุณต้องการแปลง
      กอด! พอล.

  10.   ไม่ระบุชื่อ dijo

    คุณรู้ว่าคำสั่ง speak no? ฮิฮิ

    espeak -v คือ«สวัสดี»

    1.    มาใช้ linux กันเถอะ dijo

      ใช่ แต่ไม่เหมือนกัน เสียงดีกว่านี้มาก 🙂

      1.    บันทึกที่ไม่ระบุชื่อ dijo

        เราเห็นด้วย!
        ทักทาย!

  11.   ซาร่า dijo

    สำหรับผู้ที่มีปัญหากับ mpg123 -q หรือไม่ชอบสามารถเปลี่ยนมาใช้ mplayer

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

    mplayer « http://translate.google.com/translate_tts?tl=$[1[&q=$[SHORT[$key]} »

    1.    กุย dijo

      "mplayer -really-quiet" ดีกว่าดังนั้นจึงไม่เติมข้อความที่ส่งออก

  12.   โจนาธาน dijo

    ความคิดที่ดีในการใช้ Google สำหรับแอปพลิเคชันของฉันเหมาะกับฉันเหมือนถุงมือ
    http://github.com/alfa30/t2v

  13.   Darkguzz dijo

    อีกหนึ่งคำถาม; ใครช่วยบอกวิธีบันทึกเสียงเอาต์พุตได้ไหม ???

    1.    Jose GDF dijo

      ฉันตอบคุณเองเพราะฉันเพิ่งเข้าใจ เมื่อใช้ 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íritu&q=$[SHORT[$key]} »

      แน่นอนว่ามันสามารถทำได้ด้วยวิธีอื่นที่มีประสิทธิภาพและสะอาดกว่า แต่อย่างน้อยมันก็ได้ผลสำหรับฉัน

      1.    Darkguzz dijo

        José GDF ยอดเยี่ยมฉันลองใช้วิธีของคุณแล้วได้ผลลัพธ์ที่ดีมากคำทักทาย

      2.    นมถั่วเหลือง dijo

        หากต้องการบันทึกการรับส่งข้อมูลในการดำเนินการครั้งที่สองคุณสามารถสร้าง. wav ที่คุณสร้างขึ้นในครั้งแรกได้

      3.    Jose GDF dijo

        ใช่โดยใช้เครื่องเล่นที่เราติดตั้งไว้ ตัวอย่างเช่นด้วย VLC Player จะเป็น:

        vlc-audio.wav

        ใครพูด vlc ผู้เล่นคนอื่น ๆ พูดรวมถึงผู้ที่ทำงานโดยเทอร์มินัล

        และเพื่อหลีกเลี่ยงการเขียนทับไฟล์ทุกครั้งที่ใช้สคริปต์ควรใช้ตัวแปรสำหรับชื่อ ชื่อที่ผู้ใช้จะใส่ (อ่านคำสั่ง) ก่อนเริ่ม ... แต่นั่นจะเป็นการม้วนงอ😀

  14.   ดราโก dijo

    ฉันทำใน PHP (เพื่อสร้างไฟล์เสียงสำหรับระบบโทรศัพท์ Asterisk *)

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

    ถ้า (count ($ argv) <= 1) {
    $ name = basename ($ argv [0]);
    ตาย ($ name. 'การใช้งาน:'. $ name. '
    }
    array_shift ($ argv);
    $ query = ระเบิด ('', $ 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 จริง);
    $ 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');

    1.    Darkguzz dijo

      ฉันได้จัดการบันทึกเสียงเอาต์พุตด้วยคำสั่งนี้แล้ว:
      arecord ~ ​​/ zhongwen.mp3 & ./t2s.sh zh ni hao; fg
      และในตอนท้าย ctrl + c เพื่อหยุดการบันทึก

      ฉันไม่เคยใช้ php
      แต่เมื่อทำงาน:
      php5 text-to-speech.php คือสวัสดี
      konsola เป็นเจ้าภาพสิ่งนี้:
      รูปแบบ sox FAIL: ไม่มีตัวจัดการสำหรับนามสกุลไฟล์ `mp3 ′

      การสนับสนุนใด ๆ ที่ได้รับการชื่นชมอย่างมากฉันจะลองอีกครั้งในภายหลัง

  15.   คีเรียน dijo

    2 แอพสำหรับตัวแปลภาษา Google + การแปลข้อความเป็นคำพูด:
    http://www.linuxhispano.net/2014/05/29/traductor-de-google-voz/

  16.   José dijo

    ฉันคิดว่ามันเป็นวิธีที่ดีที่สุดในการแปลงเสียงไม่แย่เท่าตัวเลือกอื่น ๆ สำหรับ Linux> _
    มีวิธีทำให้มันอ่านไฟล์ข้อความธรรมดาหรือไม่?
    การแปลงหนังสือทั้งเล่มเป็นเสียงจะมีประโยชน์มาก

  17.   ชูฟลาส dijo

    มันไม่ได้ผลสำหรับฉันฉันไม่รู้ว่าทำไมสิ่งนี้ถึงออกมา:

    xxxxx: ~ / Documents / Linux $ ./t2s.sh สวัสดี

    ---------
    สคริปต์คำพูดโดย Dan Fountain
    Talktodanf@gmail.com
    ---------
    สายการเล่น: 1 จาก 1
    http_open: HTTP / 1.0 400 คำขอที่ไม่ถูกต้อง
    http://translate.google.com: ไม่พบไฟล์หรือโฟลเดอร์ที่คุณค้นหา

    ฉันติดตั้ง mpg123 แล้วและฉันได้ทำการทดสอบเพียงเล็กน้อยและไม่มีอะไรเลย…. ขอบคุณล่วงหน้า

  18.   อิกนาซิโอครูซมาร์ติเนซ dijo

    สวัสดีคริปนี้ทำหน้าที่ฉันได้ดีมากทั้งการฟังเสียงและการบันทึกคำพูดของผู้แปล

    ในความเป็นจริงฉันได้แก้ไขสคริปต์เพื่อปรับให้เข้ากับความต้องการที่ฉันมี: แปลงรายการคำในข้อความ (เลมาริโอ) ให้เป็นเสียงพูด บันทึกเสียงของฉันใน wav แปลงเป็น ogg และตั้งชื่อตามคำที่อ่าน

    ฉันทำสิ่งนี้ใน KDE โดยใช้ Kdialog เพื่อระบุเส้นทางที่ไฟล์ที่มีรายการคำอยู่และไดเร็กทอรีที่ฉันต้องการบันทึกเสียงเสียง

    เมื่อการแปลง WAV เป็น OGG เสร็จสิ้นจะสร้างโฟลเดอร์สองโฟลเดอร์ที่เก็บ wav ไว้ที่ด้านหนึ่งและอีกด้านหนึ่งจะถูกเก็บไว้

    ตอนแรกมันทำให้ฉันโกรธเพราะมันไม่ได้อ่านคำที่มีสำเนียงอย่างถูกต้อง แต่ฉันพบว่าคุณต้องเพิ่ม "es & ie = UTF8" ในโค้ด ฉันลืมการเข้ารหัสอักขระไปชั่วขณะ

    ฉันฝากรหัสของสคริปต์ที่ฉันสร้างไว้ให้คุณเผื่อว่ามันจะช่วยคุณได้:

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

    #! / bin / ทุบตี

    ##################################
    # การบรรยายข้อความเป็นคำพูด #
    # ดัดแปลงโดย Ignacio Cruz Martínez #
    # จดหมายเป็นความลับ xD #
    ##################################

    #KDE กล่องโต้ตอบเพื่อระบุเส้นทางและชื่อของศัพท์
    soyunarchivo = $ (kdialog –inputbox «ป้อนเส้นทางและชื่อของไฟล์ (มีนามสกุลถ้ามี): »)

    #KDE กล่องโต้ตอบเพื่อระบุโฟลเดอร์ปลายทางสำหรับไฟล์เสียง
    path = $ (kdialog –inputbox «ป้อนเส้นทางเพื่อบันทึกเสียงเสียง: »)

    # ถึง cat ทุกบรรทัดของไฟล์ข้อความจะถูกอ่านแต่ละบรรทัดประกอบด้วยคำเดียว
    สำหรับฉันใน $ (cat $ soyunfile)
    do
    ก้อง $ i

    # การแปลงเป็นคำพูดโดยใช้ Google แปลอย่าลืมการเข้ารหัสเพื่อให้อ่านสำเนียง
    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 "$ path" WAV
    mv "$ path" *. wav "$ path" WAV

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

    #KDE เพื่อระบุว่างานเสร็จแล้ว
    kdialog –msgbox "กระบวนการสิ้นสุด"

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

    ตอนนี้คุณมีความรู้เกี่ยวกับใบอนุญาตในการใช้ไฟล์เสียงที่สร้างขึ้นหรือไม่?

    ข้อ จำกัด สำหรับลิขสิทธิ์และสิ่งที่เกี่ยวข้อง สิ่งนี้ทำให้ฉันสนใจเพราะฉันวางแผนที่จะใช้ไฟล์เสียงเหล่านี้เพื่อสนับสนุนผู้ที่กำลังจะรู้หนังสือโดยพื้นฐานแล้วเป็นโครงการที่ไม่แสวงหาผลกำไร

    และก็คือเครื่องมือนี้มีน้ำเสียงที่ดีที่สุดสำหรับภาษาสเปน แต่น่าเสียดายที่ใน Linux ไม่มีอะไรที่คล้ายกัน Mbrola ทำให้ฉันมีปัญหามากมายในการตั้งค่าร่วมกับ Gespeaker

    ขอบคุณและพบกัน

    1.    มาใช้ linux กันเถอะ dijo

      คิดไม่ออก ... คงต้องดูใบอนุญาต Google Translator

  19.   อาร์มันโด dijo

    สคริปต์ใช้งานไม่ได้สำหรับฉันเห็นได้ชัดว่าเป็นปัญหาที่เกี่ยวข้องกับ URL สำหรับผู้ที่สนใจนี่คือ URL ที่ถูกต้อง:
    http://translate.google.com/translate_tts?tl=es&q=Hola

  20.   Juajo dijo

    สวัสดี! ฉันได้ทำการทดสอบกับสคริปต์ของคุณและเมื่อเรียกใช้งานมันบอกฉันว่าไม่พบเสียงฉันจึงป้อน URL และดูเหมือนว่ามิสเตอร์กูเกิลได้ใส่ captcha ...

  21.   ' dijo

    อัปเดตสคริปต์