java - 如何从桌面java使用Android语音识别库

标签 java android voice-recognition speech

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

最佳答案

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

相反,您可以使用 Google 语音识别网络服务,但请注意,该服务不受官方支持,并且可能会在不事先通知的情况下进行更改或删除(但可能性不大,因为 Chrome 浏览器就是用它来提供语音服务的)识别能力)。

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

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

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

这样,您将收到一个 JSON,其中包含语音引擎找到的不同假设(替代方案)。

要从 Java 以 FLAC 格式对文件进行编码,您可以使用 jFLAC ( http://jflac.sourceforge.net/ ) 等库。

关于java - 如何从桌面java使用Android语音识别库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19320218/

相关文章:

java - ArrayStoreException 使用 apache httpasyncclient 发帖

java - 警告 : [unchecked] unchecked cast. 泛型

javascript - Electron 通知在 macOS 上不起作用(奖励 mdn 语音 api)

ios - 如何让 OpenEars 识别 iOS 上的语音号码?

android - 如何在 Android 中点击通知时打开浏览器?

android - 印度 Android 语音识别

java - Scala 中两个纪元日之间的天数

java - Google App Engine + Java 的替代方案

android - 在android中出现错误

Android:adb:将文件复制到/系统(权限被拒绝)