【问题标题】:IBM Speech to Text Alphanumeric String recognition?IBM Speech to Text 字母数字字符串识别?
【发布时间】:2026-02-08 19:05:01
【问题描述】:

在尝试让 Speech to Text(IBM Voice Gateway IVR 应用程序)识别字母数字字符串时,我想知道是否可以创建一个自定义语法或实体,将 STT 限制为仅识别单个字母和数字,不包括完全的话。例如,这是一个典型的字符串:20Y0H8C。 Watson 会返回单词和数字,例如“two”而不是“2”。数字字符串工作正常。我意识到字母识别在典型的 ASR 中存在问题,但我希望 Watson 能够胜任这项任务。我注意到没有字母数字字符的系统实体。任何建议都非常感谢。

【问题讨论】:

    标签: speech-to-text voice-recognition ibm-watson watson ibm-voice-gateway


    【解决方案1】:

    在这种情况下,将smart_formatting 设置为true

    smart_formatting 参数将日期、时间、数字和数字系列、电话号码、货币价值和 Internet 地址转换为识别请求的最终记录中更传统的表示形式。转换使转录本更具可读性,并能够更好地对转录结果进行后处理。您将参数设置为 true 以启用智能格式化,如下例所示;默认为false,不进行智能格式化。

    检查:

    curl -X POST -u {username}:{password}
    --header "Content-Type: audio/flac"
    --data-binary @{path}audio-file.flac
    "https://stream.watsonplatform.net/speech-to-text/api/v1/recognize?smart_formatting=true"
    

    结果:

    语音:数量是一百万一百零一

    结果:数量为1000101

    查看IBM官方documentation

    注意:智能格式化功能目前是测试版功能,仅适用于美国英语。

    【讨论】:

    • 感谢您的回答,但问题是在字符串中说出字母时。 Smart_formatting 已启用,但没有字母数字字符串。我也尝试过使用 input.text.match("^[a-zA-Z0-9]*$"),它在使用聊天窗口时有效,但在使用 STT 时会被击中或错过。目标是让 watson 只接受字母数字字符串,从而真正限制范围。数据是固定长度的字符串(7 个字符),字母可以是任何地方。例如:HV00310。
    • 我应该注意到我使用的是 IBM Voice Gateway(STT 是窄带)。