スクリプト:端末からのテキストからスピーチ(Google)

今日は、Google音声エンジンを使用してテキストを音声に変換するための非常に便利なスクリプトを紹介します。 このスクリプトの主な利点は、Googleによって課された100バイトの制限を「回避」することです。 実際、正直なところ、この制限は尊重されますが、すべての行が自動的に送信されます。つまり、この制限はユーザーに気付かれることはありません。 ただし、最も要求の厳しい人は、主にこの制限のために、変換がGoogle翻訳で取得できるものと同じ品質ではなく、テキスト全体を一度に渡すことができないことに気付くでしょう。 良い点として、このスクリプトでは、変換するテキストの言語を指定することもできます。

明確にしたので、従うべきステップを見てみましょう。

ステップ

1.- t2s.shという名前のファイルを作成します。

2.- 次のコンテンツをコピーします。

#!/ bin / bash ################################## Dan Fountainによるスピーチスクリプト## UsemosLinuxによって変更## TalkToDanF@gmail.com################################# INPUT = $ * STRINGNUM = 0 ary =( $ {INPUT:2})echo "---------------------------" echo "DanFountainによるスピーチスクリプト" echo "TalkToDanF @ gmail .com "echo" --------------------------- "for key in" $ {!ary [@]} "do SHORTTMP [$ STRINGNUM] = "$ {SHORTTMP [$ STRINGNUM]} $ {ary [$ key]}" LENGTH = $(echo $ {#SHORTTMP [$ STRINGNUM]})#echo "word:$ key、$ {ary [$ key ]} "#echo"追加:$ STRINGNUM "if [[" $ 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))of $(($ STRINGNUM + 1)) "mplayer" http://translate.google.com/translate_tts?ie = UTF-8&tl = $ {1}&q = $ {SHORT [$ key]} "完了

3.- スクリプトに実行権限を付与します。

sudo chmod + x t2s.sh

4.- パラメータとして渡されるスクリプトを実行します:a)テキストに対応する言語コード、b)変換されるテキスト。 例えば:

./t2s.shenこれは変換するのに非常に興味深いテキストです。
ヒント:一部の端末エミュレーターでは、テキストをドラッグするだけで貼り付けることができます。 そのため、Firefoxでテキストを選択して、ターミナルにドラッグすることができます。

それだけです、楽しんでください。


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。

  1.   ヨーヨー

    かっこいい、ありがとうございました😉

    そして、女の子の美しい声、私は恋に落ちたと思います😛

    1.    ダークガズ

      すみません、中国語を手伝ってくれませんか?中国語の文字は検出されず、ピンインのみが検出されます。

  2.  

    これは、メールをチェックするスクリプトや、目覚めたときに予測メッセージと保留中のメッセージを通知するパーソナライズされたアラームの場合に適していますxD

  3.   ヨーヨー

    ここで私はテストビデオを作りました😛 https://www.youtube.com/watch?v=O3IeK7PjA_0

    1.    Linuxを使いましょう

      良い! ありがとうございました!

  4.   ベントロックス

    とてもいいですね。mpg123をインストールするだけで済みました🙂

  5.   ポルタロ

    mpg123をインストールしなければならなかったのですが、かっこいいので、言葉が出ない場合は右目盛りなどと書いてあります。

    EH EH

  6.   パブロ・ホノラート

    ウイルスデータベースが更新されました(?)

    1.    jalbhrcp

      apt update && ./t2.shenウイルスデータベースが更新されました

  7.   アレクサンダー

    ハハハ素晴らしい、私はすでにそれのいくつかの用途を持っています、間違いなく官能的な声=)、共有してくれてありがとう。

  8.   ホルヘ・モラティラ

    Mac OSXユーザーの場合、mpg123がオンになっていないため、スクリプトを使用できませんでした。スクリプトを変更してVLCを使用することで、Mac OSXで正しく動作させることができます。

    http://pastebin.com/C2Mkp1Qy

    1.    ロロ

      問題は、vlcが確実にオンのままで、実行が終了しても閉じないことです。cvlcを使用して、グラフィカルインターフェイスが開かないようにすることができます。

      1.    ロロ

        それを置くことができます
        cvlc –play-and-exit«https://translate.google.com/translate_tts?tl=$[$key]}»
        複製の終わりに閉じるように

  9.   ニーソンフ

    こんにちはみんな私はこのエラーが発生します、誰かが私に問題が何であるかを教えてくれるかどうか見てみましょう
    プレイライン:1/1
    HTTPリクエストが失敗しました:404が見つかりません
    [mpg123.c:610]エラー:httpリソースへのアクセス http://translate.google.com/translate_tts?tl=hola&q= 失敗しました。

    1.    ニーソンフ

      [コード]再生ライン:1/1
      HTTPリクエストが失敗しました:404が見つかりません
      [mpg123.c:610]エラー:httpリソースへのアクセス http://translate.google.com/translate_tts?tl=hola&q= 失敗しました。 [/コード]

    2.    Linuxを使いましょう

      問題は、スクリプトを間違って使用していることです。
      投稿の例に示すように、実行するときは、最初のパラメーターとしてテキストの言語を渡す必要があります。
      別の例を挙げます。
      ./t2s.shinこれは簡単な例です。
      ts2.shの後には、「en」(「英語」、つまり英語を意味します)が続くことに注意してください。 スペイン語の場合は、「es」を使用してから、変換する言語のフレーズを使用します。
      抱擁! ポール。

  10.   匿名の

    あなたは話すコマンドを知っていますか? hehe

    espeak -vis-«こんにちは»

    1.    Linuxを使いましょう

      はい、しかし同じではありません。 この声はとても良いです。 🙂

      1.    匿名のメモ

        賛成です!
        ご挨拶!

  11.   サラ

    mpg123 -qに問題がある場合、またはmpgXNUMX -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.    グイド

      出力がテキストで埋められないように、「mplayer –really-quiet」を改善する

  12.   ヨナタン

    私のアプリケーションにグーグルを使用する素晴らしいアイデアは、手袋のように私に合っています。
    http://github.com/alfa30/t2v

  13.   ダークガズ

    もうXNUMXつの質問。 誰かが出力オーディオを録音する方法を教えてもらえますか?

    1.    ホセGDF

      私はちょうどそれを得たので、私はあなたに自分で答えます。 mpg123を使用して、スクリプトの38行目を次のように変更しました。

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

      -waudio.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.    ダークガズ

        素晴らしいホセGDF、私はあなたの方法を試しましたが、非常に良い結果が得られました。

      2.    ソシミック

        XNUMX回目の実行でトラフィックを節約するために、最初の実行で生成した.wavを再現できます。

      3.    ホセGDF

        はい、インストールしたプレーヤーを使用します。 たとえば、VLCプレーヤーの場合は次のようになります。

        vlcオーディオ.wav

        さて、vlcを言う人は、端末で動作するプレーヤーを含む他のプレーヤーを言います。

        また、スクリプトを使用するたびにファイルが上書きされないようにするには、名前に変数を使用する必要があります。 開始する前にユーザーが付ける名前(コマンドの読み取り)...しかし、それはカールをカールさせます😀

  14.   ドラコ

    私は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]);
    死ぬ($名前。 '使用法:'。$名前。 '
    }
    array_shift($ 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);
    $結果= curl_exec($ ch);
    curl_close($ chを);

    $ path = getcwd()。 '/'。$ファイル名;
    file_put_contents($パス。 '。mp3'、$結果);
    @exec( "sox {$ path} .mp3 -b 16 -r 8000 -t wavpcm {$ path} .wav");
    @unlink($ path。 '。mp3');

    1.    ダークガズ

      このコマンドで出力オーディオを録音することができたのはどうですか?
      arecord〜 / zhongwen.mp3&。/ t2s.sh zh ni hao; fg
      最後にctrl + cで記録を停止します。

      私はphpを使ったことがありませんでした
      しかし、実行中:
      php5text-to-speech.phpはこんにちは
      konsolaはこれをホストします:
      sox FAIL形式:ファイル拡張子 `mp3 'のハンドラーなし

      どんな貢献でも大歓迎です、私は後でもう一度やり直します。

  15.   キリアン

    グーグル言語翻訳者のための2つのアプリ+テキストから音声への翻訳:
    http://www.linuxhispano.net/2014/05/29/traductor-de-google-voz/

  16.   ホセ

    変換するのに最適な方法だと思います。音声はLinuxの他のオプションほど悪くはありません> _
    プレーンテキストファイルを読み取らせる方法はありますか?
    本全体を音声に変換すると非常に便利です

  17.   チュフラ

    まあ、それは私にとってはうまくいきません、私は理由がわかりません、これは出てきます:

    xxxxx:〜/ドキュメント/ Linux $。/ t2s.shはこんにちは

    ---------
    ダンファウンテンによるスピーチスクリプト
    TalkToDanF@gmail.com
    ---------
    プレイライン:1/1
    http_open:HTTP / 1.0不正なリクエスト
    http://translate.google.com: そのようなファイル、又はディレクトリはありません

    私はmpg123をインストールしていて、ほとんどテストを行っておらず、何もしていません…。 前もって感謝します

  18.   イグナシオクルスマルティネス

    こんにちは、このスクリプトは、音を聞いたり、翻訳者の言葉を録音したりするのに非常に役立ちました。

    実際、私は自分のニーズに合わせてスクリプトを変更しました。テキスト内の単語のリスト(レマリオ)を音声に変換します。 私の声をwavに保存し、oggに変換して、読んだ単語に従って名前を付けます。

    Kdialogを使用してKDEでこれを行い、単語リストを含むファイルがあるパスと、音声オーディオを保存するディレクトリを指定しました。

    WAVからOGGへの変換が完了すると、片側のwavと反対側のoggが保存されるXNUMXつのフォルダーが作成されます。

    最初はアクセントのある単語を正しく読めなかったので怒っていましたが、コードに「es&ie = UTF8」を追加する必要があることがわかりました。 しばらくの間、文字エンコードを忘れました。

    役立つ場合に備えて、作成したスクリプトのコードを残しておきます。

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

    #!/ bin / bashに

    ##################################
    #テキストからスピーチへの講義#
    #IgnacioCruzMartínezによる適応#
    #メールは秘密のxD#
    ##################################

    lemmaryのパスと名前を指定する#KDEダイアログボックス
    soyunarchivo = $(kdialog –inputbox«ファイルのパスと名前を入力します(拡張子が付いている場合は拡張子を付けます):»)

    音声ファイルの宛先フォルダーを指定する#KDEダイアログボックス
    path = $(kdialog –inputbox«音声オーディオを保存するパスを入力してください:»)

    #catを介して、テキストファイルのすべての行が読み取られ、各行はXNUMXつの単語で構成されます
    for i in $(cat $ soyunfile)
    do
    エコー$ i

    #グーグル翻訳を使用して音声に変換する、アクセントを読むようにエンコーディングを忘れないでください
    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を使いましょう

      わからない... GoogleTranslatorのライセンスを確認する必要があります。

  19.   アルマンド

    スクリプトは私には機能しませんでした。明らかにURLに関連する問題です。興味のある人にとっては、これが正しいURLです。
    http://translate.google.com/translate_tts?tl=es&q=Hola

  20.   ジュアホ

    こんにちは! 私はあなたのスクリプトでテストを行っていましたが、それを実行すると、オーディオが見つからないと言われたので、URLを入力しましたが、グーグル氏がキャプチャを入れたようです...

  21.   '

    スクリプトを更新する