1

https://cloud.google.com/speech/reference/rest/v1beta1/speech/asyncrecognize#authorization によると、次の情報を含む投稿リクエストをhttps://speech.googleapis.com/v1beta1に送信しようとしています/speech:asyncrecognize本文:

{
  "config": {
  "encoding": 'FLAC',
  "sampleRate": 16000,
  },
  "audio": {
  "content": <a base64-encoded string representing an audio file>,
  },
}

これらのパラメーターを本体に設定する方法がわかりません。json データと、本文に入れるオーディオ ファイルのバイナリ コンテンツがあります。これは私のコードです:

        string mServerUrl = @"https://speech.googleapis.com/v1beta1/speech:asyncrecognize";

        MultipartFormDataContent content = new MultipartFormDataContent();
        content.Add(new StringContent("config"), "\"encoding\":\"FLAC\",\"sampleRate\":16000");
        content.Add(CreateFileContent("audio.flac"));

        HttpClient mHttpClient = new HttpClient();
        HttpResponseMessage mResponse = null;

        mResponse = await mHttpClient.PostAsync(mServerUrl, content);

        string responseBodyAsText = await mResponse.Content.ReadAsStringAsync();
4

1 に答える 1

2

このリクエストは、1 つの JSON 形式の文字列です。Json形式の文字列を取得したら、次を使用して送信できます

    HttpStringContent stringContent = new HttpStringContent(
            "{ \"firstName\": \"John\" }",
            UnicodeEncoding.Utf8,
            "application/json");

    HttpClient client = new HttpClient();
    HttpResponseMessage response = await client.PostAsync(
            uri,
            stringContent);

最初に JSON 文字列を取得するには、次のことができます。

  1. 文字列ビルダーまたはstring.formatを使用して手動で文字列を構築します
  2. Json.Net ライブラリを使用してこれを構築します。

audio.content フィールドについては、ファイルを base64 文字列に変換する必要があります

Public Function ConvertFileToBase64(ByVal fileName As String) As String
    Return Convert.ToBase64String(System.IO.File.ReadAllBytes(fileName))
End Function
于 2016-08-15T03:37:25.060 に答える