סקריפט: טקסט לדיבור (גוגל) מהטרמינל

היום אני משתף אתכם בסקריפט מאוד שימושי להמרת טקסט לדיבור באמצעות מנוע הדיבור של גוגל. היתרון העיקרי של סקריפט זה הוא שהוא "עוקף" את מגבלת 100 הבתים שהטילה גוגל. למעשה, למען האמת, הוא מכבד את המגבלה הזו אבל שולח את כל השורות באופן אוטומטי, כך שהגבלה זו לא ננקטת על ידי המשתמש. התובעניים ביותר ישימו לב, עם זאת, שההמרה אינה מאותה האיכות לזו שאנו יכולים להשיג בגוגל טרנסלייט, בעיקר בשל מגבלה זו וכי לא ניתן להעביר את כל הטקסט בבת אחת. כנקודה חיובית, יש להוסיף כי סקריפט זה מאפשר לך גם לציין את שפת הטקסט להמרה.

לאחר שהבהרנו, בואו נראה מה הצעדים שיש לבצע.

צעדים

1.- צור קובץ בשם t2s.sh.

2.- העתק את התוכן הבא:

#! / bin / bash ####################################### סקריפט דיבור מאת דן מזרקה # # שונה על ידי UsemosLinux # # TalkToDanF@gmail.com # ####################################### INPUT = $ * STRINGNUM = 0 ary = ( $ {INPUT: 2}) הד "---------------------------" הד "סקריפט דיבור מאת דן מזרקה" מהדהד "TalkToDanF @ gmail .com "הד" --------------------------- "למפתח" $ {! ary [@]} "do SHORTTMP [$ STRINGNUM] = "$ {SHORTTMP [$ STRINGNUM]} $ {ary [$ key]}" LENGTH = $ (הד $ {# SHORTTMP [$ STRINGNUM]}) #echo "מילה: $ key, $ {ary [$ key ]} "#echo" מוסיף ל: $ STRINGNUM "אם [[" $ LENGTH "-" 100 "]]; ואז #echo מתחיל שורה חדשה SHORT [$ STRINGNUM] = $ {SHORTTMP [$ STRINGNUM]}} אחר STRINGNUM = $ (($ STRINGNUM + 1)) SHORTTMP [$ STRINGNUM] = "$ {ary [$ key]}" SHORT [ $ STRINGNUM] = "$ {ary [$ key]}" הסתיים עבור המפתח בשורה "$ {! SHORT [@]}" do #echo ": $ key הוא: $ {SHORT [$ key]}" הד " קו משחק: $ (($ 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 he זהו טקסט מעניין מאוד להמרה.
טיפ: כמה אמולטורים מסופיים מאפשרים לך להדביק טקסט פשוט על ידי גרירתו. אז אפשר לבחור טקסט בפיירפוקס ולגרור אותו למסוף.

זהו, מקווה שתיהנו מזה.


תוכן המאמר עומד בעקרונותינו של אתיקה עריכתית. כדי לדווח על שגיאה לחץ כאן.

37 תגובות, השאר את שלך

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   yoyo דיג'ו

    כמה מגניב, תודה רבה 😉

    ואיזה קול יפה יש לילדה, אני חושב שהתאהבתי 😛

    1.    כהה דיג'ו

      סלח לי, אתה יכול לעזור לי עם סינית? זה לא מזהה תווים סיניים, אלא רק פינין.

  2.   Shadow דיג'ו

    זה טוב כמו עבור סקריפט הבודק את הדואר או עבור אזעקה מותאמת אישית שכאשר אתה מתעורר אומר לך את התחזית וההודעות בהמתנה xD

  3.   yoyo דיג'ו

    כאן הכנתי סרטון מבחן 😛 https://www.youtube.com/watch?v=O3IeK7PjA_0

    1.    בואו נשתמש בלינוקס דיג'ו

      טוֹב! תודה!

  4.   בנקטרוקס דיג'ו

    זה נשמע טוב מאוד, הייתי צריך להתקין רק את mpg123 🙂

  5.   פורטארו דיג'ו

    צינור להתקנת mpg123 אבל זה מגניב, שאם הוא לא מקבל כמה מילים, הוא אומר אות טילדה נכונה וכו '.

    אה אה

  6.   פבלו הונוראטו דיג'ו

    מאגר וירוסים עודכן (?)

    1.    jalbrhcp דיג'ו

      apt update && ./t2.sh he מסד הנתונים של הווירוסים עודכן

  7.   אלכסנדר דיג'ו

    חחח מצוין, יש לי כבר כמה שימושים בזה, קול חושני ללא ספק =), תודה על השיתוף.

  8.   חורחה מורטילה דיג'ו

    כמשתמש ב- Mac OSX, לא ניתן היה להשתמש בסקריפט מאחר ואין לי mpg123, ולכן על ידי שינוי הסקריפט ושימוש ב- VLC נוכל להשאיר אותו עובד כראוי ב- Mac OS X.

    http://pastebin.com/C2Mkp1Qy

    1.    רולו דיג'ו

      הבעיה היא ש vlc בוודאי נשאר פעיל ולא נסגר כאשר הוא מסיים את ההפעלה ותוכל להשתמש ב- cvlc כדי למנוע את פתיחת הממשק הגרפי

      1.    רולו דיג'ו

        אפשר לשים את זה
        cvlc - הפעל-וצא «https://translate.google.com/translate_tts?tl=$ái1-lex.europa.eu&q=$ [KORT [$ מפתח]}»
        כדי לסגור בסוף ההפעלה

  9.   neysonv דיג'ו

    היי חבר'ה, אני מקבל את השגיאה הזו, בוא נראה אם ​​מישהו אומר לי מה הבעיה
    קו משחק: 1 מתוך 1
    בקשת HTTP נכשלה: 404 לא נמצא
    [mpg123.c: 610] שגיאה: גישה למשאב http http://translate.google.com/translate_tts?tl=hola&q= הכושל.

    1.    neysonv דיג'ו

      [קוד] קו משחק: 1 מתוך 1
      בקשת HTTP נכשלה: 404 לא נמצא
      [mpg123.c: 610] שגיאה: גישה למשאב http http://translate.google.com/translate_tts?tl=hola&q= הכושל. [/ קוד]

    2.    בואו נשתמש בלינוקס דיג'ו

      הבעיה היא שאתה משתמש בסקריפט שגוי.
      כאשר אתה מריץ אותו, עליך להעביר את שפת הטקסט כפרמטר הראשון, כפי שמוצג בדוגמה בפוסט.
      אני נותן לך דוגמה נוספת:
      ./t2s.sh ב זו דוגמה פשוטה.
      שים לב שאחרי ts2.sh זה בא בעקבות "en" (שפירושו "אנגלית", כלומר אנגלית). עבור ספרדית, השתמש ב- "es" ואז בביטוי בשפה זו שברצונך להמיר.
      לְחַבֵּק! פול.

  10.   אנונימי דיג'ו

    אתה יודע את פקודת הדיבור לא? חה חה

    espeak -v הוא- "שלום"

    1.    בואו נשתמש בלינוקס דיג'ו

      כן אבל לא אותו דבר. הקול הזה הרבה יותר טוב. 🙂

      1.    לא אנונימי דיג'ו

        אנחנו מסכימים!
        ברכות!

  11.   שרה דיג'ו

    לאלו שיש להם בעיות עם mpg123 -q או שאינם אוהבים את זה, תוכלו לעבור ל- mplayer

    mpg123 -q «http://translate.google.com/translate_tts?tl=$ [1-lex.europa.eu&q=$ [KORT [$ מפתח]}»

    mplayer «http://translate.google.com/translate_tts?tl=$ [1 [&q=$ [KORT [$ מפתח]]»

    1.    גידו דיג'ו

      עדיף "mplayer – באמת שקט" כך שהוא לא ממלא את הפלט בטקסט

  12.   יונתן דיג'ו

    רעיון נהדר להשתמש בגוגל ליישומים שלי מתאים לי כמו כפפה ליד.
    http://github.com/alfa30/t2v

  13.   כהה דיג'ו

    עוד שאלה אחת; מישהו יכול להגיד לי איך להקליט את שמע הפלט ???

    1.    חוזה GDF דיג'ו

      אני עונה לך בעצמי, כי פשוט קיבלתי את זה. באמצעות mpg123 שיניתי את שורה 38 של התסריט ונראיתי כך:

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

      הוספתי -w audio.wav. זה יוצר קובץ wav עם שמע הביטוי, אבל כפי שהשארתי אותו, הוא לא נשמע. אם תרצה גם לשמוע את הביטוי, תצטרך להוסיף שורה נוספת. שניכם הייתם נראים כך:

      mpg123 -q -w audio.wav «http://translate.google.com/translate_tts?tl=$ [1-lex.europa.eu&q=$ [KORT [$key]}» &
      mpg123 -q «http://translate.google.com/translate_tts?tl=$ [1-lex.europa.eu&q=$ [KORT [$ מפתח]}»

      אין ספק שזה יכול להיעשות בדרך אחרת יעילה ונקייה יותר, אבל לפחות זה עובד בשבילי.

      1.    כהה דיג'ו

        מעולה José GDF, ניסיתי את השיטה שלך עם תוצאות טובות מאוד, ברכות.

      2.    סמימי דיג'ו

        כדי לחסוך תנועה בביצוע השני תוכל לשחזר את ה- .wav שיצרת בהתחלה

      3.    חוזה GDF דיג'ו

        ובכן כן, באמצעות נגן שהתקנו. לדוגמה, עם נגן VLC זה יהיה:

        vlc audio.wav

        ובכן, מי שאומר vlc, אומר כל שחקן אחר, כולל אלה שעובדים במסוף.

        וכדי למנוע את החלפת הקובץ בכל שימוש בסקריפט, יש להשתמש במשתנה לשם. שם שהמשתמש יניח (קרא את הפקודה) לפני תחילתו ... אבל זה יהיה תלתל the

  14.   דרקו דיג'ו

    עשיתי את זה ב- PHP (כדי ליצור אודיו למערכת טלפון Asterisk *)

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

    אם (ספירה ($ argv) <= 1) {
    $ name = basename ($ argv [0]);
    למות ($ name. 'use:'. $ name. '
    }
    array_shift ($ argv);
    $ query = implode ('', $ argv);
    $ filename = str_replace (מערך ('', ',', '.'), '-', $ שאילתה);
    $ 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 ($ נתיב. '. mp3');

    1.    כהה דיג'ו

      מה דעתך שכבר הצלחתי להקליט את שמע הפלט באמצעות פקודה זו:
      arecord ~ ​​/ zhongwen.mp3 & ./t2s.sh zh ni hao; fg
      ובסוף ctrl + c להפסקת ההקלטה.

      מעולם לא השתמשתי ב- php
      אך כאשר רצים:
      php5 text-to-speech.php הוא שלום
      הקונסולה מארחת את זה:
      פורמטים של FAIL של sox: אין מטפל עבור סיומת הקובץ `mp3 '

      כל תרומה מוערכת מאוד, אנסה שוב בהמשך.

  15.   קיריאן דיג'ו

    2 אפליקציות למתרגם שפות בגוגל + תרגום טקסט לדיבור:
    http://www.linuxhispano.net/2014/05/29/traductor-de-google-voz/

  16.   ז'וזה דיג'ו

    אני חושב שזו הדרך הטובה ביותר להמיר, הקול לא רע כמו האפשרויות האחרות עבור לינוקס> _
    האם יש דרך לגרום לזה לקרוא קובץ טקסט רגיל?
    זה יהיה מאוד שימושי להמיר ספרים שלמים לאודיו

  17.   שופלאס דיג'ו

    ובכן, זה לא עובד בשבילי, אני לא יודע למה, זה יוצא:

    xxxxx: ~ / Documents / Linux $ ./t2s.sh שלום

    ---------
    תסריט נאום מאת דן מזרקה
    TalkToDanF@gmail.com
    ---------
    קו משחק: 1 מתוך 1
    http_open: HTTP / 1.0 400 בקשה רעה
    http://translate.google.com: אין כזה קובץ או תקייה

    התקנתי את mpg123 ועשיתי בדיקות קטנות ושום דבר .... תודה מראש

  18.   איגנסיו קרוז מרטינז דיג'ו

    היי, התסריט הזה שירת אותי טוב מאוד, הן להאזנה לצליל והן להקלטת דברי המתרגם.

    למעשה שיניתי את התסריט כדי להתאים אותו לצורך שיש לי: להפוך רשימת מילים בטקסט (למריו) לדיבור; שמור את קולי ב- wav, המיר ל- ogg ושם אותם על פי המילה שנקראה.

    עשיתי זאת ב- KDE באמצעות Kdialog כדי לציין את הנתיב שבו נמצא הקובץ עם רשימת המילים ואת הספריה בה אני רוצה שישמר את האודיו הקולי.

    כאשר ההמרה מ- WAV ל- OGG הסתיימה, היא יוצרת שתי תיקיות בהן נשמרת הגל מצד אחד וה- OGG מצד שני.

    בהתחלה זה הכעיס אותי מכיוון שלא קרא את המילים במבטאים בצורה נכונה, אך גיליתי שעליך להוסיף "es & ie = UTF8" בקוד. לרגע שכחתי את קידוד הדמויות.

    אני משאיר את קוד התסריט שיצרתי למקרה שהוא עובד:

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

    #! / bin / bash

    #######################################
    # הרצאת טקסט לדיבור #
    # עיבוד איגנסיו קרוז מרטינס #
    # הדואר סודי xD #
    #######################################

    תיבת דו-שיח # KDE כדי לציין את הנתיב ואת שם הלימונית
    soyunarchivo = $ (kdialog –box input «הזן את הנתיב ואת שם הקובץ (עם סיומת אם יש לו כזה):»)

    תיבת דו-שיח #KDE כדי לציין את תיקיית היעד עבור קבצי קול
    path = $ (kdialog –inputbox «הזן את הנתיב לשמירת האודיו הקול:»)

    # דרך חתול כל השורות של קובץ הטקסט נקראות, כל שורה מורכבת ממילה אחת
    עבור אני ב- $ (חתול $ soyunfile)
    do
    הד $ 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 "$ path" WAV
    mv "$ path" *. wav "$ path" WAV

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

    תיבת דו-שיח # KDE לציון העבודה הסתיימה
    kdialog –msgbox 'התהליך הסתיים'

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

    כעת, האם למישהו מכם יש ידע לגבי הרישיון לשימוש בקבצי הקול שנוצרו?

    הגבלה על זכויות יוצרים ודברים קשורים. זה מעניין אותי מכיוון שאני מתכנן להשתמש בכמה מקבצי הקול הללו כדי לתמוך באנשים שהולכים להיות קרוא וכתוב, בעיקרון מדובר בפרויקט ללא כוונת רווח.

    וזה שלכלי זה יש את האינטונציה הטובה ביותר לשפה הספרדית, למרבה הצער בלינוקס אין שום דבר דומה. Mbrola עשה לי הרבה בעיות להקים יחד עם Gespeaker.

    תודה ונתראה.

    1.    בואו נשתמש בלינוקס דיג'ו

      אין מושג ... יצטרך להסתכל על רישיונות Google Translator.

  19.   ארמנדו דיג'ו

    התסריט לא עבד עבורי, ככל הנראה מדובר בבעיה הקשורה לכתובת האתר, עבור מי שמעוניין זוהי כתובת האתר הנכונה:
    http://translate.google.com/translate_tts?tl=es&q=Hola

  20.   ג'וג'ו דיג'ו

    שלום! עשיתי בדיקות עם התסריט שלך וכאשר ביצע אותו, הוא אמר לי שהוא לא יכול למצוא את השמע, אז הזנתי את כתובת האתר ונראה שמר גוגל שם קפצ'ה ...

  21.   ' דיג'ו

    עדכן את התסריט