2017-03-23 5 views
-2

C#の音声アプリケーションに「Call Mark」と尋ねると、「Yes」と答えると確認を求められます。どのようにして確認を求めるのですか?

case "Call Mark: 
    speak.SpeakAsync("Are you sure"); 

     break; 

私がブールを使用する必要があろうと推測するが、私はあなたが言う前に「はい」と言っているように、私はそれをせずに方法がわからない「のマークを呼んでいます。」私が試した別の方法は、「はい」と言ったときに彼に電話するようにしただけです。

+2

ちょうど 'speak.SpeakAsync'はboolを返します。その後、実際に電話をかける前にその値を確認してください。 –

+0

手元の質問とは無関係ですが、可能なすべてのコマンドをswitch文にハードコーディングすることには疑問があります。 –

+0

@DangerZoneそれ以外はどうしますか? –

答えて

0

わかりやすくするため、高レベルのアルゴリズムを使用して回答を表現します。

  1. "マークを呼び出し、" 話すの受信を待機は "よろしいですか?"
  2. 答えが「はい」の場合は、Markを呼び出します。コードで

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

ありがとう!コードフォームで入力してください。 –

+0

@ScottGibbard:そうです。追加されたコードを見てください。 – recursive

+0

私は2つの問題に遭遇しました。 1.)「DetectSpeech」はありません。 2)それは "暗黙のうちに型 'string'を 'bool'に変換できないということです。 –

1

あなたの最善の策は、.SpeakAsync()メソッドがブール値を返すことです。実際に電話をかける前に結果を確認します。

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

それは 'speak.SpeakAsync ( "Are you sure"); '暗黙のうちに、 'System.Speech.Synthesis.Prompt'の型を 'bool'に暗黙的に変換することはできません" –

+0

'SpeakAsync()'メソッドがサードパーティライブラリのものであればこのアイデアを図書館が提供するものから活用しなければなりません。 –

関連する問題