Google Cloud语音响应始终为空错误

时间:2017-07-26 05:16:58

标签: c# unity3d google-cloud-speech

我通过"https://speech.googleapis.com/v1/speech:recognize?key=<my key>"通过以下方式向GCS发送音频:

byte[] audioBytes = g_NPCAudioListener.GetAudioClipMonoData16(88200);

string jsonData = "{" +
      "\"config\": {" +
          "\"encoding\": \"LINEAR16\"," +
          "\"sampleRateHertz\": 48000," +
          "\"languageCode\": \"en-US\"" +
      "}," +
      "\"audio\": {" +
          "\"content\" : \"" + Convert.ToBase64String(audioBytes) + "\"" +
      "}" +
"}";

byte[] postData = System.Text.Encoding.UTF8.GetBytes(jsonData);
g_NPCController.Debug("Sending to google: " + jsonData);
using (WWW req = new WWW(g_Google_Speech_URL, postData, g_JSONHeaders)) {
           yield return req;
           if (req.error == null) {
               g_NPCController.Debug(req.text.Replace("\n", "").Replace(" ", ""));
           } else {
               string msg = Convert.ToString(req.bytes);
               g_NPCController.Debug("Google Speech Error: " + req.error + "\n - error: " + req.text);
           }
 }

一切都达到了规范,然而,我一直只得到一个空身的错误标志。

在处理主要的JSON impl时,我得到了&#34; Invalid parameter&#34;这样......但是现在我正在流式传输88200块16位未压缩音频字节,我不断收到错误,没有附加文本 - 甚至不是代码。有没有人遇到类似的情况?

如果相关,我从Unity中的AudioClip获取音频,然后将32位float []转换为字节[originalAudio.Length * sizeof(float)],然后根据需要转换为base64。

感谢。

0 个答案:

没有答案