use*_*664 9 audio text-to-speech google-translate phonetics
我正在尝试将法语单词的发音保存到 .wav 或 .mp3 文件中。
我想知道 Google Translate API 上是否有任何地方(因为它具有发音功能)可以让我实现这一目标。其他库也可以。
自从提出这个问题以来,从 Google 翻译中“抓取”MP3 变得更加困难,但 Google(终于)建立了TTS API。有趣的是,它按输入字符计费,每月前 1 或 400 万个输入字符是免费的(取决于您使用的是 WaveNet 还是老式语音)
gcloud如今,要在命令行上使用此操作(而不是将其构建到应用程序中),您将大致执行以下操作(我正在解释TTS 快速入门)。对于本演练,您需要base64、curl、gcloud、 和jq。
gcloud projects create example-throwaway-ttsCreateexport GOOGLE_APPLICATION_CREDENTIALS="~/Downloads/service-account-file.json"gcloud使用该新项目:gcloud config set project example-throwaway-ttsTTS_ACCESS_TOKEN=gcloud auth application-default print-access-tokenrequest.json最后,运行以下命令
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
Run Code Online (Sandbox Code Playgroud)这样做的目的是
jq可以提取有效负载)request.json发送的数据curl--data-rawaudioContent从响应中提取 的值base64解码该内容内容request.json如下。您可以通过audioConfig查看在哪里插入所需的文本、调整语音或更改输出格式:
{
'input':{
'text':'very simple example'
},
'voice':{
'languageCode':'en-gb',
'name':'en-GB-Standard-A',
'ssmlGender':'FEMALE'
},
'audioConfig':{
'audioEncoding':'MP3'
}
}
Run Code Online (Sandbox Code Playgroud)
原答案
正如 Hugolpz 所暗示的,如果您知道所需的单词或短语(通过之前的 Translate API 调用),您可以从http://translate.google.com/translate_tts?ie=UTF-8&q=Bonjour&tl=等 URL 获取 MP3 FR
请注意,这&tl=fr可确保您获得法语而不是默认的英语。
您需要限制自己的速度,但如果您正在寻找少量的单词或短语,那么应该没问题。