Google Text Text-to-Speech возвращает «INVALID_ARGUMENT» - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь преобразовать текст в речь Google Cloud с помощью REST. Он отлично работает при использовании Проводника API Google .

Но когда я пытаюсь сделать пост-звонок, он возвращает следующую ошибку (ключ API, который я использую, не имеет ограничений):

{
  "error": {
    "code": 400,
    "message": "Invalid JSON payload received. Unknown name \"{\r\n \"audioConfig\": {\r\n  \"audioEncoding\": \"MP3\"\r\n },\r\n \"input\": {\r\n  \"text\": \"This is a text to speak\"\r\n },\r\n \"voice\": {\r\n  \"languageCode\": \"en-US\",\r\n  \"name\": \"en-US-Standard-B\"\r\n }\r\n}\": Cannot bind query parameter. Field '{\r\n \"audioConfig\": {\r\n  \"audioEncoding\": \"MP3\"\r\n },\r\n \"input\": {\r\n  \"text\": \"This is a text to speak\"\r\n },\r\n \"voice\": {\r\n  \"languageCode\": \"en-US\",\r\n  \"name\": \"en-US-Standard-B\"\r\n }\r\n}' could not be found in request message.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.BadRequest",
        "fieldViolations": [
          {
            "description": "Invalid JSON payload received. Unknown name \"{\r\n \"audioConfig\": {\r\n  \"audioEncoding\": \"MP3\"\r\n },\r\n \"input\": {\r\n  \"text\": \"This is a text to speak\"\r\n },\r\n \"voice\": {\r\n  \"languageCode\": \"en-US\",\r\n  \"name\": \"en-US-Standard-B\"\r\n }\r\n}\": Cannot bind query parameter. Field '{\r\n \"audioConfig\": {\r\n  \"audioEncoding\": \"MP3\"\r\n },\r\n \"input\": {\r\n  \"text\": \"This is a text to speak\"\r\n },\r\n \"voice\": {\r\n  \"languageCode\": \"en-US\",\r\n  \"name\": \"en-US-Standard-B\"\r\n }\r\n}' could not be found in request message."
          }
        ]
      }
    ]
  }
}

Тело запроса:

{
 "audioConfig": {
  "audioEncoding": "MP3"
 },
 "input": {
  "text": "This is a text to speak"
 },
 "voice": {
  "languageCode": "en-US",
  "name": "en-US-Standard-B"
 }
}

Опубликовать ссылку: https://texttospeech.googleapis.com/v1beta1/text:synthesize?fields=audioContent&key={MY_API_KEY}

1 Ответ

0 голосов
/ 21 марта 2019

Основываясь на этом Быстрый старт преобразования текста в речь

Я успешно выполнил следующий запрос POST:

curl -X POST \
  -H "Content-Type: application/json; charset=utf-8" \
  --data "{
    'input':{
      'text':'This is a text to speak'
    },
    'voice':{
      'languageCode':'en-US',
      'name':'en-US-Standard-B'
    },
    'audioConfig':{
      'audioEncoding':'MP3'
    }
  }" "https://texttospeech.googleapis.com/v1/text:synthesize?key=MY_KEY" > synthesize-text.txt

Надеюсь, это поможет.

...