从语音中获取用户输入?

2023-11-27

我刚刚开始尝试 C# .Net 中的 Windows Speech to Text 功能。我目前已经掌握了基础知识(IE - 说点什么,它会根据你所说的提供输出)。但是,我正在努力弄清楚如何实际接收用户输入作为变量。

我的意思是,例如。如果用户说:

"Call me John"

然后我希望能够接受这个词John作为变量,然后将其存储为该人的用户名。

我现在的SpeechRecognized事件如下:

void zeusSpeechRecognised(object sender, SpeechRecognizedEventArgs e)
    {
        writeConsolas(e.Result.Text, username);
        switch (e.Result.Grammar.RuleName)
        {
            case "settingsRules":
                switch (e.Result.Text)
                {
                    case "test":
                        writeConsolas("What do you want me to test?", me);
                        break;
                    case "change username":
                        writeConsolas("What do you want to be called?", me);
                        break;
                    case "exit":
                        writeConsolas("Do you wish me to exit?", me);
                        break;
                }
                break;
        }
    }

NB:writeConsolas只是一个美化的附加行RichTextBox.

我想添加另一个case它执行以下操作:

case "call me"
    username = e.Result.GetWordFollowingCallMe() //Obv not a method, but thats the general idea.
    break;

显然,没有这样的方法,但这是我希望实现的总体想法。有没有办法搜索特定短语(即:Call me)并采取以下单词?

编辑:我应该注意, e.Result.Text 仅返回可以与字典中的文本匹配的单词。


看起来不像你的情况e.Result.Text代表您可以枚举的内容:您正在检查文本开头的单词,而不是整个文本。在这种情况下,您不应该使用switch,然后去寻找一个链if-then-else改为:

var text = e.Result.Text;
if (text.StartsWith("test")) {
    writeConsolas("What do you want me to test?", me);
} else if (text.StartsWith("change username")) {
    writeConsolas("What do you want to be called?", me);
} else if (text.StartsWith("exit")) {
    writeConsolas("Do you wish me to exit?", me);
} else if (text.StartsWith("call me")) {
    // Here you have the whole text. Chop off the "call me" part,
    // using Substring(), and do whatever you need to do with the rest of it
} else 
    ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从语音中获取用户输入? 的相关文章

随机推荐

  • SP2010 客户端对象模型 3 MB 限制 - 未应用更新 maxReceivedMessageSize

    我正在使用客户端对象模型与 Sharepoint 2010 进行交互 当我尝试使用客户端 OM 上传大于 3 MB 的文档时 出现错误请求错误 微软建议this解决问题 我尝试过并更新了 maxReceivedMessageSize 属性
  • Django Rest Framework - 当尝试使用不正确的凭据登录用户时,为什么会返回 200 状态代码?

    这是我的 URLs py url r api auth include rest framework urls namespace rest framework 我的主页上有一个表单 用户可以在其中输入用户名和密码 单击提交按钮时 Angu
  • 如何在 C++ 中声明全局变量

    我知道不应该使用全局变量 但我需要它们 我读过 在函数外部声明的任何变量都是全局变量 我已经这样做了 但在另一个 cpp文件中 找不到该变量 所以它并不是真正的全球性 是不是得建立一个头文件GlobalVariabels h并将该文件包含到
  • Google Sheets API:调用者没有权限

    我正在尝试从 cron 中读取文档 https sheets googleapis com v4 spreadsheets
  • 查看网页生成源的最佳方式?

    我正在寻找一个工具 它可以为我提供正确的生成源 包括由 AJAX 请求输入到 W3 验证器中所做的 DOM 更改 我尝试过以下方法 网页开发者工具栏 根据文档类型生成无效源 例如 它删除标签的自关闭部分 丢失页面的文档类型部分 Firebu
  • Pandas 左外连接结果表大于左表

    根据我对左外连接的理解 结果表的行数不应多于左表的行数 如果这是错误的 请告诉我 我的左表有 192572 行和 8 列 我的右表有 42160 行和 5 列 我的左表有一个名为 id 的字段 它与右表中名为 key 的列匹配 因此我将它们
  • 合并相同键的值

    可以用吗awk将相同键的值放入一行 例如 a 100 b 200 a 131 a 102 b 203 b 301 我可以将它们转换为这样的文件吗 a 100 131 102 b 200 203 301 您可以像这样使用 awk awk F
  • Google plus客户端“发生内部错误”[重复]

    这个问题在这里已经有答案了 昨天 当我尝试在我的应用程序中使用 Google Plus 签署用户时 我开始收到 发生内部错误 我使用得很好并且没有更改 代码已经很长时间没有改变了 GmsClient回报 connect bindServic
  • Azure 上的 Django 不加载静态文件

    我按照下面的教程在azure上创建了一个django项目 http www windowsazure com en us develop python tutorials web sites with django 一切正常 直到我尝试安装
  • 大量 if 语句的快速替代方案

    我是java初学者 我正在制作一个简单的程序 在其中输入一些内容 如果我输入的内容与 数据库 上的其中一个内容匹配 那么它会打印一些文本 有没有比这样做更简单的方法来检查这一点 int 1 int 2 int 3 etc if USER I
  • NoClassDefFoundError:无法初始化类 androidx.customview.poolingcontainer.PoolingContainer

    使用 Jetpack Compose UI 工具1 2 0 rc01和组合编译器1 2 0 android composeOptions kotlinCompilerExtensionVersion 1 2 0 dependencies d
  • Node.js 中域的替代方案

    由于 nodev4 2 1 已发布 并且该域被标记为已弃用 所以现在我需要它的替代方案 早些时候 我曾经将请求级别变量存储在域中 以便我可以在请求的同一上下文中查找数据的其他过程中使用这些变量 我们有什么办法可以实现它吗 注意 我无法使用请
  • 如何使用 boto3 为 AWS Cognito 创建 SECRET_HASH?

    我想使用 boto3 和 python 为 AWS Cognito 创建 计算 SECRET HASH 这将合并到我的 fork 中warrant 我将我的 Cognito 应用程序客户端配置为使用app client secret 但是
  • 如何在C#中使用实体框架从存储过程获取输出结果?

    我正在开发一个 ASP NET MVC 项目 我的目标是从表格中准备一份报告 所以 我第一次编写 Linq 代码 但速度太慢了 之后我编写了一个 SQL 查询 它非常快 我想使用存储过程从我的表中获取报告数据 事实上 我的项目非常简单 它获
  • 对于 git diff --name-status,输出是什么意思?

    当我跑步时git diff name status我看到这样的行 MM mm Jenkinsfile MM 是什么意思 mkreiger1 的 可能重复 确实提供了有用的信息 但就像 Koop4 的答案一样 它在不引用回答此问题的 git
  • 如何禁用颤振上的自动热重载?

    我已经搜索过这个问题并看到了解决方案 但我无法找出问题所在 我收到一些错误 因为每次编写代码时 它都会在我完成代码之前直接运行热重载 那么 如何禁用 flutter 中的自动热重载呢 flutter 中的自动热重载非常烦人 我只想使用基于
  • 两次调用 CoInitialize()

    假设我的应用程序在启动时调用 CoInitialize 并在存在之前调用 CoUninitialize 假设我有一个由我的应用程序使用的第三方组件并执行类似的操作 这会导致某种故障吗 当调用已经提交时 可以调用 CoInitialize 吗
  • Postgres 类似于 SQL Server 中的 CROSS APPLY

    我需要将为 MS SQL Server 2005 编写的 SQL 查询迁移到 Postgres 9 1 最好的替代方法是什么CROSS APPLY在这个查询中 SELECT FROM V CitizenVersions CROSS APPL
  • 为什么我的 D3 折线图显示每个实体的黑色区域?

    我制作了一个网络爬虫 用于获取有关不同银行的货币转移汇率的数据 并在一段时间内以 D3 线图的形式显示该数据 每家银行都有一条线 汇率为每天 cronjob 服务器端确保每天都会进行抓取 在前端 它使用 D3 json 从此 url 获取数
  • 从语音中获取用户输入?

    我刚刚开始尝试 C Net 中的 Windows Speech to Text 功能 我目前已经掌握了基础知识 IE 说点什么 它会根据你所说的提供输出 但是 我正在努力弄清楚如何实际接收用户输入作为变量 我的意思是 例如 如果用户说 Ca