有没有办法强制 Google Speech api 仅返回单词作为响应?

2024-02-23

我正在使用谷歌这个API:-

"+ language_code"& key="我的密钥"

用于语音识别,并且效果非常好。

问题在于数字,即如果我说one two three four结果将是1234如果我说one thousand two hundred thirty four结果还是1234.

另一个问题是对于其他语言,即这个词elf德语是eleven。如果你说elf结果是11,而不是精灵。

我知道我们无法控制 api,但是我们可以向此 api 添加任何参数或 hack 来强制它仅返回单词。

有时响应会产生正确的结果,但并非总是如此。

这些是示例响应

1)当我说“一二三四”时

{"result":[{"alternative":[{"transcript":"1234","confidence":0.47215959},{"transcript":"1 2 3 4","confidence":0.25},{"transcript":"one two three four","confidence":0.25},{"transcript":"1 2 34","confidence":0.33333334},{"transcript":"1 to 34","confidence":1}],"final":true}],"result_index":0}

2)当我说“一千二百三十四”时

{"result":[{"alternative":[{"transcript":"1234","confidence":0.94247383},{"transcript":"1.254","confidence":1},{"transcript":"1284","confidence":1},{"transcript":"1244","confidence":1},{"transcript":"1230 4","confidence":1}],"final":true}],"result_index":0}

我做了什么。

检查结果是否为数字,然后将每个数字按空格分开,并检查结果数组中是否存在相同的序列。在这个例子中结果 1234 变为 1 2 3 4,将搜索结果数组中是否有相似的序列,然后将其转换为单词。在第二种情况下,没有 1 2 3 4,因此将保留原始结果。

这是代码。

 String numberPattern = "[0-9]";
  Pattern r1 = Pattern.compile(numberPattern);
  Matcher m2 = r1.matcher(output);
  if (m2.find()) {
      char[] digits2 = output.toCharArray();
      String digit = "";
      for (char c: digits2) {
          digit += c + " ";
      }

      for (int i = 1; i < jsonArray2.length(); i++) {
          String value = jsonArray2.getJSONObject(i).getString("transcript");
          if (digit.trim().equals(value.trim())) {
              output = digit + " ";
          }
      }
  }

所以问题是,当我“说十三四八”时,这种方法会将 13 分成一三,因此不是一个可靠的解决方案。

Update

我尝试了新的云视觉 api (https://cloud.google.com/speech/ https://cloud.google.com/speech/)并且比 v2 好一点。结果为one two three four就语言本身而言,我的解决方法也有效。但当我说thirteen four eight仍然和 v2 中的结果相同。

而且 elf 在德语中仍然是 11 岁。

也尝试过speech_context那也没用。


看看这个问题和答案 https://stackoverflow.com/questions/39893742/google-speech-api-transcribing-spoken-numbers-incorrectly/42172599#42172599.

您可以向 API 提供“语音上下文”提示,如下所示:

"speech_context": {
  "phrases":["zero", "one", "two", ... "nine", "ten", "eleven", ... "twenty", "thirty,..., "ninety"]
 }

我想这也适用于其他语言,比如德语。

"speech_context": {
  "phrases":["eins", "zwei", "drei", ..., "elf", "zwölf" ... ]
 }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法强制 Google Speech api 仅返回单词作为响应? 的相关文章

随机推荐

  • 提取关键属性 mongocxx

    我试图通过 mongocxx 仅提取关键属性 但使用 find 和 find one 函数 我无法仅提取关键值 int main int char mongocxx instance inst mongocxx client conn mo
  • 为什么在 C 中使用 atoi() 会得到这个意想不到的结果?

    我不明白以下 C 代码的结果 main char s AAA advanceString s void advanceString p 3 int val atoi p printf The atoi val is d n val 这里的a
  • 使用 FileSystemWatcher 观察 log4net 日志文件

    我创建了简单的 WPF 控件来监视日志文件中的更改 我使用 FileSystemWatcher 来监视特定文件 我的配置 Directory System IO Path GetDirectoryName logFileFullPath F
  • Swift -Ounchecked 和断言

    Preface 在斯威夫特中 ENABLE NS ASSERTIONS被忽略 断言是打开还是关闭取决于SWIFT OPTIMIZATION LEVEL 浏览此处获取更多信息 http blog krzyzanowskim com 2015
  • 两个多边形的最近点

    我有两个多边形 我想获得最小距离 并测量该距离之间的点 当然 这样的点很可能位于两个节点之间的边缘 这是一个例子 我正在寻找一种算法 可以给我绿色距离和两个点 如果多边形不相交 您可以这样做 如果有多边形 A 和多边形 B 则 A i 和
  • 在 wget 或curl 查询中使用通配符

    从目录下载时是否可以在 wget 查询中使用通配符 基本上 我有一个网站 www download example com dir version package rpm 然而 版本目录一直在变化 有时包含多个RPM包 是否有一个 wget
  • 如何在有可用空间(如密度扫描仪)的 pdf 上插入图像或图章

    我有一个 pdf 文件 我在其中的所有页面上添加了图章 但是 问题是 图章被添加到每个页面的左上角 如果页面的该部分有文本 则标记会出现在文本上 我的问题是 有什么方法可以阅读每一页 如果该部分没有文本 请添加图章 否则搜索最近的可用可用空
  • onCreateOptionsMenu(Menu 菜单) 和 onPrepareOptionsMenu(Menu 菜单) 有什么区别?

    解释一下之间的区别onCreateOptionsMenu Menu menu and onPrepareOptionsMenu Menu menu onCreateOptionsMenu 被调用一次 onPrepareOptionsMenu
  • 如何在同一个组件中初始化和使用上下文?

    我有一个名为 SortContext 的上下文 我想做的是初始化这个上下文 创建它的提供者 然后在同一个组件中使用该上下文 这可能吗 例如 export default function MyComponent children const
  • 连接两个 numpy 矩阵

    如果你有两个 numpy 矩阵 如何将它们连接在一起 它们应该水平连接 以便 0 1 0 1 1 0 1 0 4 1 4 1 0 1 0 1 例如 对于这些矩阵 gt gt type X gt gt type Y gt gt X shape
  • Swift 可以将类/结构数据转换为字典吗?

    例如 class Test var name String var age Int var height Double func convertToDict gt String AnyObject let test Test test na
  • React 使表格可点击并编辑详细信息

    如何使表格行可单击以编辑和更新详细信息 我正在从 pouchdb 检索这些详细信息 我将部分代码粘贴到下面以供您评估 this state docs this db this props db componentDidMount this
  • 计算图像中圆心的坐标

    假设我有这张图像 我想得到 X Y 中每个圆的中心 MatLab 有没有算法可以做到这一点 只需拨打一次电话即可实现区域属性 http www mathworks nl help images ref regionprops html im
  • Django:检查模板中ManyToMany字段的值

    我的 Django 应用程序中有以下模型 class Group models model name models CharField max length 30 users Models ManyToManyField User 在我的模
  • 是否可以阻止远程脚本在 iframe 内加载?

    我正在动态创建 iframe 并且我想阻止不是源自 iframe 来源的脚本 这可能吗 通过 JavaScript jQuery 例如 如果我的页面加载 iframeexample com内容 我想要example com要运行的脚本 但我
  • 关于函数声明中的函数指针

    include
  • 以不同(非 root)用户身份从 PHP 运行 shell 脚本

    我正在尝试在 Ubuntu 服务器上从 PHP 运行非特权用户拥有的 shell 脚本 权限问题使得运行它exec 不切实际 因为它是www data正在运行它 我用谷歌搜索了一下 发现对 suExec 的各种引用 对于这么小的问题来说 这
  • 测试 Selenium 的 onbeforeunload 事件

    我正在尝试为网页编写一个 Selenium 测试 该测试使用 onbeforeunload 事件在离开之前提示用户 Selenium 似乎无法识别出现的确认对话框 或者提供点击 确定 或 取消 的方法 有什么办法可以做到这一点吗 我正在使用
  • 最重要的常量和右值引用

    在 C 03 中 您可以使用const 将临时变量的生命周期延长到引用的生命周期的技巧 或 最重要的常量 我的问题是 在 C 0x 中 这种行为是否扩展到右值引用 IEauto x someFunction 根据 class tempora
  • 有没有办法强制 Google Speech api 仅返回单词作为响应?

    我正在使用谷歌这个API language code key 我的密钥 用于语音识别 并且效果非常好 问题在于数字 即如果我说one two three four结果将是1234如果我说one thousand two hundred th