web-dev-qa-db-ja.com

GoogleからMP3をダウンロードテキストを音声に翻訳

インターネットからこのコードを見つけ、URLを使用してGoogle翻訳のテキストを音声に変換する機能を使用しています。コードは次のとおりです。

http://translate.google.com/translate_tts?tl=en&q="hello world"

Vb.netでこれを呼び出す方法は知っていますが、Google翻訳からMP3ファイルを保存する方法がわかりません。この機能を使用するためにvb.netのsystem.speechを使用しましたが、Google翻訳から音声を取得する必要があります。だから、そのURLを使用してGoogle翻訳からサウンドファイルを保存する方法を知っていますか?ありがとう。

21
user1169690

編集2015-12-26

2015-12-21現在、このコードはGoogle TTS APIにさらに変更を加えると機能しなくなります。 @ncpiersonで示されているように、新しい追加パラメーターtkが必要であり、シェルスクリプトでそれを計算する方法を見つけるのに苦労しています。この回答を、できる限り新しい編集で修正します。

Windowsについてはわかりませんが、Linuxではコマンドラインから非常に簡単です。コマンドラインスクリプトを使用して、テキスト文字列の英語の音声をダウンロードします。

#!/bin/bash
# write an English text string as an audio file using Google Translate
# usage: en2audio.sh <text>
wget -q -U Mozilla -O "$*.mp3" "http://translate.google.com/translate_tts?ie=UTF-8&client=t&tl=en&q=$*"

中国語でも同じことを行います(単語間に解析するスペースがないため、スクリプトは少し単純です):

#!/bin/bash
# write a Chinese text string as an audio file using Google Translate
# usage: zh2audio.sh <text>
wget -q -U Mozilla -O $1.mp3 "http://translate.google.com/translate_tts?ie=UTF-8&client=t&tl=zh&q=$1"

ほとんどのLinuxディストリビューションにはwgetが標準として含まれていますが、簡単にダウンロードできます(例: this link を参照)。

client=tパラメーターの@ncpiersonに感謝します)。

21
Bobble

Google翻訳ページが実行したスクリプトは、例を使用したときに、ファイル拡張子のない「translate_tts」というファイルを生成しました。

このファイルを使用する簡単な方法の1つは、ブラウザに伝えることです。 Mozilla([ツール]/[オプション] /アプリケーションの下)、オーディオファイルを保存する-この場合、拡張子はありませんが、MP3であると思います。いずれの場合も、audio/waveまたはaudio/Mpg to "SAVE FILE"の横にある「ACTION」の下のオプションを選択します。

ブラウザがURLを読み込むと、データが何であるかに関係なく、「translate_tts」というファイルがダウンロードされます。したがって、あなたの場合、ファイル名を「Hello-World.mp3」に変更します。これにより、必要なオーディオを含むファイルをハードドライブに保存できます。このファイルは、ほとんどすべての形式を再生するため、任意のオーディオプレーヤー、できればVLCメディアプレーヤーで再生できます。

もちろん、別のオーディオが必要な場合、例えば「Goodbye-World」、URLを変更するだけです

http://translate.google.com/translate_tts?tl=en&q="Goodbye-World"

上記の手順を繰り返して、ファイルを「Goodbye-World.mp3」として保存します。

7
JCCbama

手動で行う場合は、[名前を付けて保存...]を右クリックしてトリックを実行します。例: 独自の例をテストする

私はvb.netのことを知りませんが、Linuxのbashスクリプトを介していくつかの情報をダウンロードしようとしています。 vb.netタグが表示されるまで、wgetを使用することをお勧めします。 このスレッド を確認してください。アイデアが得られるかもしれません。あなたは基本的にリンクのページをダウンロードしたい、それはmp3です。

4

Javaで書かれたソリューションを次に示します。

URL url = new URL("http://translate.google.com/translate_tts?tl=en&q=\"hello world\"");
HttpURLConnection httpcon = (HttpURLConnection) url.openConnection();
httpcon.addRequestProperty("User-Agent", "anything");
IOUtils.copy(httpcon.getInputStream(), new FileOutputStream("output.mp3"));

例外処理は省略されました。 IOUtilsはApache Commons IOから来ています。

2
Hunternif

2017年に生成された音声ファイルを取得し、Googleのメタデータをすべて削除する半自動化された方法を作成しました。これはFirefox用で、C#で書かれています。だからあなたがやろうとしていることに近いが、それでも100%ではない。ファイルを直接取得しようとしましたが、Googleはこの時点では回避できないと思われる、かなり洗練されたセキュリティ機能を実装しています。近づいたと思うと、ReCaptchaが返ってきました。

私はここでそれをオープンソースにしました: https://github.com/Goodlookinguy/FFMediaCacheGrabber そしてハウツービデオも提供しました。

嘘をつくつもりはありません、あなたが探しているものではないので、この答えは素晴らしいとは思いませんが、少なくとも今のところ人々を助けるためにできることはそれだけです。

0