0

"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 で作業しているときに、「無効なパラメーター」などを取得していました...しかし、16 ビットの非圧縮オーディオ バイトの 88200 チャンクをストリーミングしているため、テキストが添付されていないエラーが発生し続けます。コード。誰かが同様の状況に遭遇しましたか?

関連する場合は、オーディオを Unity の AudioClip から取得し、32 ビットの float[] を byte[originalAudio.Length * sizeof(float)] に変換し、必要に応じて base64 に変換します。

ありがとう。

4

0 に答える 0