1

私が持っているオーディオ ファイルを取得し、その音声を Google Speech Recognition API を使用してテキスト ファイルに変換できる Windows アプリケーションを作成しようとしています。これが私がしたことです:

1) https://groups.google.com/a/chromium.org/forum/?fromgroups#!forum/chromium-devにアクセスしてメンバーになりました。

2) Google Developers Console に移動し、API キーを正常に生成しました。

3)オンラインでコードを入手して実行しました:

private void btnGoogle_Click(object sender, EventArgs e)
        {

            string path = @"Z:\path\to\audio\file\good-morning-google.flac";
            try
            {

                FileStream fileStream = File.OpenRead(path);
                MemoryStream memoryStream = new MemoryStream();
                memoryStream.SetLength(fileStream.Length);
                fileStream.Read(memoryStream.GetBuffer(), 0, (int)fileStream.Length);
                byte[] BA_AudioFile = memoryStream.GetBuffer();
                HttpWebRequest _HWR_SpeechToText = null;
                _HWR_SpeechToText =
                            (HttpWebRequest)HttpWebRequest.Create(
                                "https://www.google.com/speech-api/v2/recognize?output=json&lang=en-us&key=your-api-key-here");
                _HWR_SpeechToText.Credentials = CredentialCache.DefaultCredentials;
                _HWR_SpeechToText.Method = "POST";
                _HWR_SpeechToText.ContentType = "audio/x-flac; rate=44100";
                _HWR_SpeechToText.ContentLength = BA_AudioFile.Length;
                Stream stream = _HWR_SpeechToText.GetRequestStream();
                stream.Write(BA_AudioFile, 0, BA_AudioFile.Length);
                stream.Close();

                HttpWebResponse HWR_Response = (HttpWebResponse)_HWR_SpeechToText.GetResponse();
                if (HWR_Response.StatusCode == HttpStatusCode.OK)
                {
                    Console.WriteLine("looks ok...");
                    StreamReader SR_Response = new StreamReader(HWR_Response.GetResponseStream());
                    Console.WriteLine(SR_Response.ReadToEnd());

                    Console.WriteLine(SR_Response.ReadToEnd());
                    Console.WriteLine("Done");
                }



            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }

            Console.ReadLine();
        }

上記のコードが実行されます。次の出力が得られます。

looks ok...
{"result":[]}

したがって、ログ行が実行HttpStatusCode.OKされるため、応答を得ていることがわかります。looks ok...

しかし、結果は完全に空です...それはなぜですか?私は何か間違ったことをしていますか?

編集: 音声ファイルを入手した場所は次のとおりです: https://github.com/gillesdemey/google-speech-v2

4

2 に答える 2