gpt4 book ai didi

java - 语音识别,有没有办法可以通过正则表达式确定用户说的话?

转载 作者:太空狗 更新时间:2023-10-29 12:57:17 24 4
gpt4 key购买 nike

我正在使用 android 中的语音识别功能,我可以对着我的设备说话,然后会看到一个可能的单词列表。

当我说“开始”时,它给了我以下它认为听到的话:

  1. 股票
  2. 库存
  3. 停止
  4. 开始
  5. 停止
  6. 斯塔克斯

该列表将取决于用户口音以及其他各种因素。有没有一种简单的方法可以检查该列表中的特定单词?

如果用户发出命令“开始”或“停止”,我需要能够区分这两个命令。

我最初的想法是使用正则表达式来检查任何响应中的“sta”或“sto”,有没有更有效的方法?

最佳答案

通常,我建议您生成一个 Soundex对于您返回的每个单词,根据您要查找的单词的 Soundexes 对整个列表进行评分,作为匹配字符的一部分,并使用这些分数来决定哪个单词更有可能匹配。

例如,start 编码为 S363stop 编码为 S310。根据匹配字符的百分比对单词进行评分,结果如下表所示:

Word    Soundex  S363   S310
---- ------- ---- ----
stocks S320 0.50 0.75
stock S320 0.50 0.75
stop S310 0.50 1.00
start S363 1.00 0.50
stops S312 0.50 0.75
starks S362 0.75 0.50
---- ----
Average Score 0.63 0.71

不幸的是,这得出了错误的答案(你说停止的概率更高,即使你知道你说的是开始)因为你的两个词有很多共同点。当识别器匹配您的一个目标词并在同一回合中将其与另一个词混淆时,您真的无法知道说话者实际说的是哪个词。

您可以通过选择不太相似的词来解决这个问题,例如 gostopbeginend 。然后你可以完全放弃 Soundex,只在返回的列表中寻找你的目标词。您必须在应用程序的其他本地化版本中注意这一点,因为其他语言也可能存在类似问题(例如,法语有 allezarrêtez)。

HTH.

关于java - 语音识别,有没有办法可以通过正则表达式确定用户说的话?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4978352/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com