0

我可以像从 Android 一样从我的 java swing 程序向谷歌语音 api 发送请求吗?我的意思是如何在简单的 java 程序中使用 android 库。例如,只有一个 JFrame、jpanel、两个按钮:“开始”、“停止”和文本字段。如果是,请告诉我必须从什么开始。b

4

1 回答 1

4

答案是否定的,您不能从桌面 Java Swing 程序中使用 Android 语音识别库。

相反,您可以使用 Google 语音识别网络服务,但请注意这不是官方支持的,它可能会在没有事先通知的情况下更改或删除(但不太可能,因为 Chrome 浏览器使用它来提供语音识别功能) .

要从 Java 中使用它,您需要将带有 FLAC 编码音频的 HTTP 请求发布到“ https://www.google.com/speech-api/v1/recognize ”。

构建请求的相关数据(带有示例值):

  • HTTP方法:POST
  • URL:“ https://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang=en-US&maxresults=10&pfilter=0
  • xjerr告诉语音服务器将错误作为 JSON 的一部分返回,而不是作为 HTTP 错误代码。
  • clientAFAIK 并没有真正考虑到它,但是如果您说“铬”,那么您是安全的,因为似乎请求是从 Chromium 发送的
  • lang演讲的语言
  • maxresults返回的最大假设数
  • pfilter打开/关闭“安全”过滤器
  • "Content-Type:audio/x-flac; rate=16000"将 16000 替换为 FLAC 文件的频率(以 Hz 为单位)。

这样,您将收到一个带有语音引擎发现的不同假设(替代方案)的 JSON。

要从 Java 编码 FLAC 格式的文件,您可以使用诸如 jFLAC ( http://jflac.sourceforge.net/ ) 之类的库。

于 2013-10-11T15:04:40.553 回答