使用Google Translate API获取单词的发音

时间:2014-06-07 19:48:41

标签: audio text-to-speech google-translate phonetics

我正在尝试将法语单词的发音保存为.wav或.mp3文件。

我想知道Google Translate API上是否有任何地方(因为它具有发音功能),这使我能够实现这一目标。其他图书馆也可以使用。

2 个答案:

答案 0 :(得分:1)

Speech Synthesis API(正在开发中)提供了类似的功能。第三方库已经存在,例如ResponsiveVoice.JS

答案 1 :(得分:-2)

自从提出这个问题以来,从谷歌翻译中“刮掉”MP3变得更加困难,但谷歌(终于)设置了TTS API。有趣的是,它是按输入字符计费的,每月前1或4百万个输入字符是免费的(取决于你使用的是WaveNet还是旧学校的声音)

现在要在命令行上使用gcloud执行此操作(而不是将其构建到应用程序中),您将大致如下(我正在解释TTS quick start)。本演练需要base64curlgcloudjq

  1. 在GCP控制台上创建项目,或运行类似gcloud projects create example-throwaway-tts
  2. 的项目
  3. Enable billing用于该项目。即使您不打算超过免费配额,也要这样做。
  4. 对您刚刚设置的项目使用GCP控制台enable the TTS API
  5. 再次使用控制台这次make a new service account
    • 使用任何旧名称
    • 不要发挥作用。你会收到警告。这没关系。
    • 选择密钥类型JSON(如果尚未选择)
    • 点击Create
    • 抓住浏览器下载的JSON文件
  6. 设置环境变量以指向该文件,例如export GOOGLE_APPLICATION_CREDENTIALS="~/Downloads/service-account-file.json"
  7. 获取相应的访问令牌:
    1. 告诉gcloud使用该新项目:gcloud config set project example-throwaway-tts
    2. 设置变量TTS_ACCESS_TOKEN=gcloud auth application-default print-access-token
  8. 汇总JSON请求。我将在下面给出一个例子。对于此示例,我们将其称为request.json
  9. 最后,运行以下

     curl \
    -H "Authorization: Bearer "$TTS_ACCESS_TOKEN \
    -H "Content-Type: application/json; charset=utf-8" \
    --data-raw @request.json \
    "https://texttospeech.googleapis.com/v1/text:synthesize" \
    | jq '.audioContent' \
    | base64 --decode > very_simple_example.mp3
    
  10. 这是做什么的

    • 使用您设置的项目的默认访问令牌进行身份验证
    • 将内容类型设置为JSON(以便jq可以提取有效负载)
    • 使用request.json作为要使用curl的{​​{1}}标记
    • 发送的数据
    • 从回复中提取--data-raw的值
    • audioContent解码该内容
    • 将整个烂摊子保存为MP3

    base64的内容如下。您可以查看插入所需文字的位置,调整the voice或通过audioConfig更改输出格式:

    request.json

    原始答案

    正如Hugolpz所说,如果你知道你想要的单词或短语(通过以前的Translate API调用),你可以从http://translate.google.com/translate_tts?ie=UTF-8&q=Bonjour&tl=fr

    这样的网址获取MP3。

    请注意,{ 'input':{ 'text':'very simple example' }, 'voice':{ 'languageCode':'en-gb', 'name':'en-GB-Standard-A', 'ssmlGender':'FEMALE' }, 'audioConfig':{ 'audioEncoding':'MP3' } } 可确保您获得法语而非默认英语。

    您需要对自己进行限价,但如果您正在寻找少量的单词或短语,那么您应该没问题。