SemanticResultKey 생성자
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
SemanticResultKey의 인스턴스를 생성하고 키를 문법 구성 요소에 연결합니다.
오버로드
SemanticResultKey(String, GrammarBuilder[]) |
음성 인식 문법을 만드는 데 사용하는 하나 이상의 GrammarBuilder 개체에 의미 키를 할당합니다. |
SemanticResultKey(String, String[]) |
음성 인식 문법을 만드는 데 사용하는 하나 이상의 String 인스턴스에 의미 키를 할당합니다. |
설명
텍스트 태그(의미 체계 키) 및 음성 인식 문법에 추가할 문법 구성 요소 집합을 지정하기 위한 SemanticResultKey 생성자입니다.
문법 구성 요소는 개체의 배열 또는 인스턴스의 GrammarBuilderString 배열로 지정할 수 있습니다.
문법 구성 요소가 인식에 사용되는 경우 의 생성자에 SemanticResultKey 제공된 텍스트 태그를 의미 체계 키로 사용하여 반환 SemanticValue 된 에 액세스할 수 있습니다. instance 속성 SemanticValue 은 Value 정의SemanticResultKey에 사용되는 문법 구성 요소에 의해 결정됩니다.
SemanticResultKey(String, GrammarBuilder[])
- Source:
- SemanticResultKey.cs
- Source:
- SemanticResultKey.cs
- Source:
- SemanticResultKey.cs
음성 인식 문법을 만드는 데 사용하는 하나 이상의 GrammarBuilder 개체에 의미 키를 할당합니다.
public:
SemanticResultKey(System::String ^ semanticResultKey, ... cli::array <System::Speech::Recognition::GrammarBuilder ^> ^ builders);
public SemanticResultKey (string semanticResultKey, params System.Speech.Recognition.GrammarBuilder[] builders);
new System.Speech.Recognition.SemanticResultKey : string * System.Speech.Recognition.GrammarBuilder[] -> System.Speech.Recognition.SemanticResultKey
Public Sub New (semanticResultKey As String, ParamArray builders As GrammarBuilder())
매개 변수
- semanticResultKey
- String
builders
인수로 지정된 SemanticValue 개체와 연결된 GrammarBuilder 인스턴스에 액세스할 때 의미 키로 사용할 태그입니다.
- builders
- GrammarBuilder[]
semanticResultKey
에 정의된 태그를 사용하여 액세스할 수 있는 SemanticValue 개체와 연결된 문법 구성 요소의 배열입니다.
예제
다음 예제에서는 "내 암호는 ..."형식의 암호 입력을 인식하는 을 만듭니다 Grammar . 여기서 실제 입력은 와일드카드와 일치합니다.
와일드카드는 키 값이 "Password"인 에 SpeechRecognizer 의해 태그가 지정됩니다. SpeechRecognized 처리기는 이 태그의 존재를 확인하고, 암호의 오디오 입력을 가져오고, 암호를 확인합니다.
private void pwdGrammar()
{
GrammarBuilder pwdBuilder = new GrammarBuilder("My Password is");
GrammarBuilder wildcardBuilder = new GrammarBuilder();
wildcardBuilder.AppendWildcard();
SemanticResultKey wildcardKey= new SemanticResultKey("Password", wildcardBuilder);
pwdBuilder+=wildcardKey;
Grammar grammar = new Grammar(pwdBuilder);
grammar.Name = "Password input";
grammar.SpeechRecognized +=
delegate(object sender, SpeechRecognizedEventArgs eventArgs)
{
SemanticValue semantics = eventArgs.Result.Semantics;
RecognitionResult result=eventArgs.Result;
if (!semantics.ContainsKey("Password"))
{
SpeechUI.SendTextFeedback(eventArgs.Result, "No Password Provided", false);
}
else
{
RecognizedAudio pwdAudio = result.GetAudioForWordRange(
result.Words[3],
result.Words[result.Words.Count - 1]);
MemoryStream pwdMemoryStream = new MemoryStream();
pwdAudio.WriteToAudioStream(pwdMemoryStream);
if (!IsValidPwd(pwdMemoryStream))
{
string badPwd = System.IO.Path.GetTempPath() + "BadPwd" + (new Random()).Next().ToString() + ".wav";
FileStream waveStream = new FileStream(badPwd, FileMode.Create);
pwdAudio.WriteToWaveStream(waveStream);
waveStream.Flush();
waveStream.Close();
SpeechUI.SendTextFeedback(eventArgs.Result, "Invalid Password", false);
}
}
};
grammar.Enabled = true;
_recognizer.LoadGrammar(grammar);
UpdateGrammarTree(_grammarTreeView, _recognizer);
}
설명
암시적 변환으로 인해 인수는 builders
, , SemanticResultKeyChoices및 String 개체도 지원합니다SemanticResultValue. 암시적 변환에 대한 자세한 내용은 를 참조하세요 Implicit.
인식 작업을 GrammarBuilder 수행할 때 인수에 제공된 개체는 builders
순차적으로 처리됩니다. 예를 들어 다음 SemanticResultValue 을 사용하여 를 생성하는 Grammar경우 인식 엔진에 대한 입력에는 인식할 "빠른 갈색 여우"라는 단어가 순서대로 포함되어야 합니다.
SemanticResultKey stringTest=new SemanticResultKey(
"stringTest", new GrammarBuilder[] {
new GrammarBuilder("the"),
new GrammarBuilder("quick"),
new GrammarBuilder("brown"),
new GrammarBuilder("fox")});
인수에는 semanticResultKey
반환될 수 있는 에 액세스 SemanticValue 하는 데 사용되는 태그가 포함되어 있습니다.
의 는 Value 매개 변수에서 GrammarBuilder 제공하는 인스턴스에 의해 결정됩니다builders
.SemanticValue
개체에 GrammarBuilder 의 정의 인스턴스가 SemanticResultValue없는 경우 의 SemanticValue 값은 입니다 null
.
매개 변수에 제공된 개체가 GrammarBuilder 인식 논리에 builders
사용되는 태그가 지정되지 않은(개체와 SemanticResultKey 연결되지 않음) SemanticResultValue instance 제공하는 경우 해당 instance SemanticResultValue 생성되는 의 SemanticValue 속성을 정의 Value 합니다.
매개 변수로 지정된 builders
개체에 태그 SemanticResultValue 가 지정되지 않은 instance GrammarBuilder 하나만 있어야 합니다. 태그 SemanticResultValue 가 지정되지 않은 여러 인스턴스가 와 SemanticResultKey연결된 경우 각각은 인식 결과에서 생성된 의 SemanticValue 값을 설정하려고 시도합니다. 이는 허용되지 않으며 인식기는 이러한 instance 사용하여 만든 을 Grammar 사용하려고 할 때 예외를 SemanticResultKey 생성합니다.
매개 변수에 지정된 개체에 GrammarBuilder 포함되고 이미 다른 SemanticResultKey 인스턴스와 연결된 의 SemanticResultValue 인스턴스는 현재 SemanticResultKey instance 영향을 주지 builders
않습니다.
적용 대상
SemanticResultKey(String, String[])
- Source:
- SemanticResultKey.cs
- Source:
- SemanticResultKey.cs
- Source:
- SemanticResultKey.cs
음성 인식 문법을 만드는 데 사용하는 하나 이상의 String 인스턴스에 의미 키를 할당합니다.
public:
SemanticResultKey(System::String ^ semanticResultKey, ... cli::array <System::String ^> ^ phrases);
public SemanticResultKey (string semanticResultKey, params string[] phrases);
new System.Speech.Recognition.SemanticResultKey : string * string[] -> System.Speech.Recognition.SemanticResultKey
Public Sub New (semanticResultKey As String, ParamArray phrases As String())
매개 변수
- semanticResultKey
- String
phrases
인수로 지정된 String 개체와 연결된 SemanticValue 인스턴스에 액세스하는 데 사용할 태그입니다.
- phrases
- String[]
결부된 텍스트가 semanticResultKey
에서 정의된 태그에 액세스 가능한 String 개체와 연결된, 하나 이상의 SemanticValue 개체
예제
다음 예제에서는 개체의 배열 String 에 GrammarBuilder 의해 정의 되는 를 사용 SemanticResultKey하는 개체에서 를 만듭니다Grammar.
만든 를 Grammar 사용하는 인식 엔진은 "빨강 녹색 파란색 0"이라는 구를 인식합니다. 인식에서 반환된 RecognizedPhrase 의 의미 체계에는 "빨간색 녹색 파란색"이 있는 가 Value 포함 SemanticValue 됩니다. "코드" 태그를 사용하여 에 액세스할 SemanticValue 수 있습니다.
에 SemanticResultValue("zero", 5)
추가된 GrammarBuilder으로 인해 의 루트 SemanticValue 개체 RecognizedPhrase 값은 5입니다.
private void keyTest()
{
// Say "color red green blue zero"
GrammarBuilder gb = new GrammarBuilder("color") +
new SemanticResultKey("code",
(new string[] {"red", "green", "blue"})) +
new SemanticResultValue("zero", 5);
Grammar g = new Grammar(gb);
g.Name = "keyTest";
_recognizer.LoadGrammar(g);
}
설명
인식 작업을 String 수행할 때 매개 변수에 phrases
사용되는 개체는 순차적으로 처리됩니다. 예를 들어 다음 SemanticResultValue 을 사용하여 를 생성하는 Grammar경우 인식 엔진에 대한 입력에는 인식할 "빠른 갈색 여우"라는 단어가 순서대로 포함되어야 합니다.
SemanticResultKey stringTest=new SemanticResultKey("stringTest",
new string[] {
"the",
"quick",
"brown",
"fox"});
인수는 semanticResultKey
반환될 수 있는 에 액세스 SemanticValue 하는 데 사용되는 키를 결정합니다.
문자열 Value 개체 배열이 있는 의미 체계 키를 포함하는 개체를 사용하여 GrammarBuilder 를 생성하는 Grammar 경우 인식 작업에서 생성된 의 SemanticValue 는 인식에 사용되는 문자열입니다. 앞의 예제에서 이것은 "빠른 갈색 여우"임을 Value 의미합니다.
적용 대상
.NET