你如何让c#请求确认?

你如何让c#请求确认?,c#,speech-recognition,voice-recognition,C#,Speech Recognition,Voice Recognition,我不知道该怎么做,如果我问我的C#voice应用程序“Call Mark”,它会要求确认,只有我说“Yes”时才会给他打电话 我猜我必须使用Bool,但我不知道如何在你说“呼叫标记”之前先说“是”。我尝试的另一种方法就是这样,当我说“是”时,它会呼叫他。为了清晰起见,我将使用高级算法来表达我的答案 等待接收“呼叫标记” 说“你确定吗?” 如果答案是“是”,那么打电话给马克 代码: if (speech = "CALL MARK) { var string input = Api.Dete

我不知道该怎么做,如果我问我的C#voice应用程序“Call Mark”,它会要求确认,只有我说“Yes”时才会给他打电话


我猜我必须使用Bool,但我不知道如何在你说“呼叫标记”之前先说“是”。我尝试的另一种方法就是这样,当我说“是”时,它会呼叫他。

为了清晰起见,我将使用高级算法来表达我的答案

  • 等待接收“呼叫标记”
  • 说“你确定吗?”
  • 如果答案是“是”,那么打电话给马克
  • 代码:

    if (speech = "CALL MARK) {
        var string input = Api.DetectSpeech(Source.Microphone);
        if (input = "YES") {
            Phone.DialNumber(Contacts.Mark);
        }
    }
    

    最好是让
    .SpeakAsync()
    方法返回bool。然后你会在打电话之前检查结果

    case "Call Mark":
        bool confirmationResult = speak.SpeakAsync("Are you sure");
        if (confirmationResult)
            MakeCall();
        break;
    

    只需让
    speak.SpeakAsync
    返回bool即可。然后在你真正进行调用之前检查该值。与手头的问题无关,但我怀疑是否将所有可能的命令硬编码到switch语句中。。。除了测试之外。@DangerZone否则你会怎么做?@ScottGibbard-我真的不能告诉你,因为我对你的代码甚至应用程序都不太了解,但想想一部有语音识别功能的手机,有人可以按姓名呼叫任何联系人。。。您不可能为用户可能说的每个名字/昵称都添加一个大小写。@ScottGibbard:当然可以。请查看添加的代码。我遇到了两个问题。1.)没有“DetectSpeech.”2.)它说“不能隐式地将类型'string'转换为'bool'。你能告诉我如何修复它们吗?否则,谢谢!嗯。对不起。看起来我看错了文档。我没有关于这个api的任何信息。除了
    speak.SpeakAsync(“你确定”)之外,它还能工作吗?”
    遇到一个错误,该错误表示“无法隐式地将类型'System.Speech.Synthesis.Prompt'转换为'bool'。“如果
    SpeakAsync()
    方法来自第三方库,则必须利用该库提供的这一思想。
    case "Call Mark":
        bool confirmationResult = speak.SpeakAsync("Are you sure");
        if (confirmationResult)
            MakeCall();
        break;