从Google翻译文本到语音下载MP3

use*_*690 21 vb.net mp3 google-translate

我从互联网上找到了这个代码,它使用了Google翻译的文本到语音功能.这是代码:

http://translate.google.com/translate_tts?tl=en&q="hello world"
Run Code Online (Sandbox Code Playgroud)

我知道如何在我的vb.net中调用它,但我不知道如何从谷歌翻译中保存MP3文件.我使用vb.net中的system.speech来获得此功能,但我特别需要从谷歌翻译获得演讲.那么,有没有人知道如何使用该URL保存谷歌翻译的声音文件?谢谢.

Bob*_*ble 21

编辑2015-12-26

自2015-12-21起,此代码在进一步更改Google TTS API后不再有效.如@ncpierson所示,需要一个新的附加参数tk,我很难在shell脚本中计算它.我会尽可能地用新的编辑修改这个答案.

我不确定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=$*"
Run Code Online (Sandbox Code Playgroud)

我用中文做同样的事情(脚本有点简单,因为在单词之间没有空格来解析):

#!/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"
Run Code Online (Sandbox Code Playgroud)

大多数Linux发行版都包含wget作为标准,但可以轻松下载(参见,例如,此链接).

(感谢@ncpierson client=t参数).

  • Google翻译再次更新.要正确访问API,您现在必须执行以下操作:https://gist.github.com/ncpierson/eeea9956cb2bc3b290e5.现在需要'tk'参数.这是我不认识的某种哈希函数,但它用于验证查询文本(用当前时间加盐). (2认同)
  • 嘿大家。无耻的自我宣传:我的网站 http://soundoftext.com 需要这个。每次他们更改 Google API 时,我都找到了绕过它的方法。我很快就会发布一个新网站,并计划拥有一个*实际* API。所以继续观察。虽然,即使现在您也可以对我的 API 进行逆向工程。很多人都有:耸肩: (2认同)

小智 7

当我使用您的示例时,谷歌翻译页面运行的脚本生成了一个名为"translate_tts"的文件,没有文件扩展名.

使用此文件的一种简单方法是告诉您的浏览器,例如Mozilla [在"TOOLS"/"OPTIONS"/ APPLICATIONS]下保存音频文件 - 在这种情况下我相信它是一个MP3,即使没有扩展名.在任何情况下,选择audio/wave或audio/Mpg旁边的"ACTION"下的选项为"SAVE FILE".

当浏览器加载您的URL时,无论数据是什么,它都会下载名为"translate_tts"的文件.因此,在您的情况下,我会将文件名更改为"Hello-World.mp3".这样你就可以在硬盘上找到包含所需音频的文件,任何音频播放器都可以播放,最好是VLC媒体播放器,因为它几乎可以播放任何格式.

当然,如果您想要一个不同的音频,例如"Goodbye-World",您只需将您的URL更改为

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

并重复上述步骤将文件另存为"Goodbye-World.mp3".


Fra*_*cia 4

如果您想手动执行此操作,请右键单击“另存为...”即可。示例:测试您自己的示例

我不知道 vb.net,但我将尝试通过 Linux 中的 bash 脚本下载一些信息。在我看到 vb.net 标签之前,我本来打算推荐使用 wget。检查这个线程,它可能会给你一些想法。您基本上想要下载链接的页面,这是一个 mp3。