【发布时间】:2014-04-24 12:43:15
【问题描述】:
我想在我当前的项目中使用 Google Speech API。
我从here获得了有关如何访问api的信息
如 github 上所述,您必须向服务器发送一个 post webrequest 并以 json 形式返回结果。
我还从here获得了一些用于 v1 api 的源代码
设置请求并不难:
WebRequest request = WebRequest.Create(Constants.GoogleRequestString);
request.Method = "POST";
request.ContentType = "audio/x-flac; rate=" + sampleRate;
request.ContentLength = bytes.Length;
在我的示例中,Constants.GoogleRequestString 等于 https://www.google.com/speech-api/v2/recognize?output=json&lang=en-us&key=AIzaSyCnl6MRydhw_5fLXIdASxkLJzcJh5iX0M4
我从 github 链接下载了 .flac 文件,并用 c# 编写了一个小程序,该程序正在加载 flac 文件的字节并将其发送到服务器,并使用稍微修改的方法GoogleRequest(byte[] bytes, int sampleRate)
我按照方法打开流,并将所有字节发送到服务器。我得到了回复,但是
我得到的 JSON 字符串是:"{\"result\":[]}"
我不知道为什么它不起作用。文件或文件中的口语文本不正确(但如果我用 vlc 听,我清楚地听到口语文本)或者我的程序仍有一些错误。
你有没有遇到过speech-api没有结果的问题?它不应该说类似result: couldn't understand what is spoken 或任何其他错误消息吗?
我刚刚试用了 .wav 文件。这对我有用。
【问题讨论】:
-
你的采样率是多少?对我来说,这是 flac 的采样率。
-
根据 VLC,采样率为 44100Hz。我使用 44100 作为 flac 文件。但还是没有结果。
-
pastebin.com/Ns3XxBNP 这是我用于语音到文本的类。 (从 CloudSpeech 项目编辑)感兴趣的功能是识别(Stream contentToRecognize),您只需在其中放入您的 flac 流。显然忽略 JSON 解析器,看看你是否得到响应,因为这对我来说绝对有用。
标签: c# google-api speech-recognition