Grammar 생성자
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
Grammar 클래스의 새 인스턴스를 초기화합니다.
오버로드
Grammar() |
Grammar 클래스의 새 인스턴스를 초기화합니다. |
Grammar(SrgsDocument, String, Uri, Object[]) |
Grammar의 인스턴스에서의 SrgsDocument 클래스의 새 인스턴스를 초기화하며, 상대 참조를 확인하기 위해 문법 및 기본 URI로의 진입점이 될 규칙의 이름을 지정합니다. |
Grammar(Stream, String, Uri, Object[]) |
Stream인 Grammar 클래스의 새 인스턴스를 초기화하며 상대 참조를 확인하기 위해 루트 규칙 및 기본 URI를 지정합니다. |
Grammar(SrgsDocument, String, Uri) |
개체에서 SrgsDocument 클래스의 Grammar 새 인스턴스를 초기화하고, 루트 규칙을 지정하고, 상대 규칙 참조를 확인하기 위한 기본 URI(Uniform Resource Identifier)를 정의합니다. |
Grammar(SrgsDocument, String, Object[]) |
Grammar의 인스턴스에서의 SrgsDocument 클래스의 새 인스턴스를 초기화하며, 문법으로의 진입점이 될 규칙의 이름을 지정합니다. |
Grammar(Stream, String, Uri) |
스트림에서의 Grammar 클래스의 새 인스턴스를 초기화하며, 루트 규칙을 지정하고, 상대 규칙 참조를 확인하기 위해 기본 URI(Uniform Resource Identifier)를 정의합니다. |
Grammar(Stream, String, Object[]) | |
Grammar(String, String, Object[]) |
문법 정의를 포함하는 파일에서의 Grammar 클래스의 새 인스턴스를 초기화하며, 문법으로의 진입점이 될 규칙의 이름을 지정합니다. |
Grammar(SrgsDocument, String) |
개체에서 클래스의 새 인스턴스를 Grammar SrgsDocument 초기화하고 루트 규칙을 지정합니다. |
Grammar(Stream, String) | |
Grammar(String) |
파일에서 Grammar 클래스의 새 인스턴스를 초기화합니다. |
Grammar(SrgsDocument) |
Grammar 개체를 사용하여 SrgsDocument 클래스의 새 인스턴스를 초기화합니다. |
Grammar(String, String) |
파일에서 Grammar 클래스의 새로운 인스턴스를 초기화하고 루트 규칙을 지정합니다. |
Grammar(GrammarBuilder) |
Grammar 개체에서 GrammarBuilder 클래스의 새 인스턴스를 초기화합니다. |
Grammar(Stream) |
설명
생성자를 사용하여 Grammar 지원되는 형식의 문법에 대한 GrammarBuilder SrgsDocument 설명이 포함된 파일이나 파일 또는 Stream 개체에서 인스턴스를 만들 Grammar 수 있습니다. 지원되는 형식은 다음과 같습니다.
W3C에 따르는 XML 형식 파일 음성 인식 문법 Specification (SRGS) 버전 1.0
.cfg 파일 확장자를 사용하여 이진 파일로 컴파일된 문법
인수에 XML 형식 문법 파일을 허용하는 문법 생성자는 XML 문법을 이진 형식으로 컴파일하여 음성 인식 엔진의 로드 및 사용을 최적화합니다. 메서드 중 하나를 Compile 사용하여 문법을 미리 컴파일하여 XML 형식 문법에서 개체를 생성하는 Grammar 데 필요한 시간을 줄일 수 있습니다.
음성 인식 문법은 루트 규칙을 정의할 수 있습니다. 루트 규칙으로 사용할 규칙을 지정하는 개체를 만들 Grammar 려면 매개 변수를 허용하는 ruleName
생성자를 사용합니다.
상대 규칙 참조를 Grammar 확인하기 위해 기본 URI를 지정하는 개체를 만들려면 매개 변수를 사용하는 baseUri
생성자를 사용합니다.
Grammar()
Grammar(SrgsDocument, String, Uri, Object[])
Grammar의 인스턴스에서의 SrgsDocument 클래스의 새 인스턴스를 초기화하며, 상대 참조를 확인하기 위해 문법 및 기본 URI로의 진입점이 될 규칙의 이름을 지정합니다.
public:
Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ srgsDocument, System::String ^ ruleName, Uri ^ baseUri, cli::array <System::Object ^> ^ parameters);
public Grammar (System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument, string ruleName, Uri baseUri, object[] parameters);
new System.Speech.Recognition.Grammar : System.Speech.Recognition.SrgsGrammar.SrgsDocument * string * Uri * obj[] -> System.Speech.Recognition.Grammar
Public Sub New (srgsDocument As SrgsDocument, ruleName As String, baseUri As Uri, parameters As Object())
매개 변수
- srgsDocument
- SrgsDocument
음성 인식 문법에 대한 제약 조건을 포함하는 SrgsDocument의 인스턴스
- ruleName
- String
음성 인식 문법의 진입점으로 사용하는 규칙의 식별자이거나, 문법 설명의 기본 루트 규칙을 사용하는 null
입니다.
- baseUri
- Uri
문법 설명에서 관련 규칙 참조를 해결하기 위해 사용하는 기본 URI 또는 null
입니다.
- parameters
- Object[]
생성되는 OnInit의 루트 규칙 또는 진입점에 대한 Grammar 속성에 지정된 초기화 처리기에 전달되는 매개 변수입니다. 이 매개 변수는 null일 수 있습니다.
예외
매개 변수에 잘못된 값이 있는 경우
srgsDocument
에서 지정한 SrgsDocument는ruleName
에서 지정한 규칙을 포함하지 않습니다.배열 매개 변수의 내용이 규칙의 초기화 처리기의 인수와 일치하지 않습니다.
문법은
baseUri
가 제공한 URI나 문법에 대한 기본 기준 Uri 규칙으로 확인할 수 없는 상대 규칙 참조를 포함합니다.
설명
초기화 처리기에 대한 매개 변수도 지정할 수 있습니다.
적용 대상
Grammar(Stream, String, Uri, Object[])
public:
Grammar(System::IO::Stream ^ stream, System::String ^ ruleName, Uri ^ baseUri, cli::array <System::Object ^> ^ parameters);
public Grammar (System.IO.Stream stream, string ruleName, Uri baseUri, object[] parameters);
new System.Speech.Recognition.Grammar : System.IO.Stream * string * Uri * obj[] -> System.Speech.Recognition.Grammar
Public Sub New (stream As Stream, ruleName As String, baseUri As Uri, parameters As Object())
매개 변수
- ruleName
- String
음성 인식 문법의 진입점으로 사용하는 규칙의 식별자이거나, 문법 설명의 기본 루트 규칙을 사용하는 null
입니다.
- baseUri
- Uri
문법 설명에서 관련 규칙 참조를 해결하기 위해 사용하는 기본 URI 또는 null
입니다.
- parameters
- Object[]
생성되는 OnInit의 루트 규칙 또는 진입점에 대한 Grammar 속성에 지정된 초기화 처리기에 전달되는 매개 변수입니다. 이 매개 변수는 null일 수 있습니다.
예외
매개 변수에 잘못된 값이 있는 경우
stream
이ruleName
에서 지정한 규칙을 포함하지 않는 문법에 연결됩니다.배열 매개 변수의 내용이 규칙의 초기화 처리기의 인수와 일치하지 않습니다.
문법에는 baseUri
가 제공한 URI나 문법에 대한 기본 기준 Uri 규칙으로 확인할 수 없는 상대 규칙 참조가 포함됩니다.
설명
초기화 처리기에 대한 매개 변수도 지정할 수 있습니다.
적용 대상
Grammar(SrgsDocument, String, Uri)
개체에서 SrgsDocument 클래스의 Grammar 새 인스턴스를 초기화하고, 루트 규칙을 지정하고, 상대 규칙 참조를 확인하기 위한 기본 URI(Uniform Resource Identifier)를 정의합니다.
public:
Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ srgsDocument, System::String ^ ruleName, Uri ^ baseUri);
public Grammar (System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument, string ruleName, Uri baseUri);
new System.Speech.Recognition.Grammar : System.Speech.Recognition.SrgsGrammar.SrgsDocument * string * Uri -> System.Speech.Recognition.Grammar
Public Sub New (srgsDocument As SrgsDocument, ruleName As String, baseUri As Uri)
매개 변수
- srgsDocument
- SrgsDocument
음성 인식 문법에 대한 제약 조건입니다.
- ruleName
- String
음성 인식 문법의 진입점으로 사용하는 규칙의 식별자 또는 SrgsDocument의 기본 루트 규칙을 사용하는 null
- baseUri
- Uri
SrgsDocument에서 관련 규칙 참조를 해결하기 위해 사용하는 기본 URI 또는 null
입니다.
예외
ruleName
을 확인할 수 없거나 public이 아닙니다. 또는 ruleName
은 null
이고 srgsDocument
에 루트 규칙이 포함되지 않습니다.
srgsDocument
이(가) null
인 경우
srgsDocument
확인할 수 없는 규칙 참조를 포함합니다.
예제
다음 예제에서는 cities.xml 파일에 대한 상대 규칙 참조를 포함하는 음성 인식 문법 SrgsDocument 을 만들고 규칙 참조를 확인하는 데 사용할 URI를 지정합니다. cities.xml 파일의 내용은 C# 예제를 따르는 XML 예제에 나타납니다.
private static Grammar CreateSrgsDocumentGrammar3()
{
// Create the SrgsDocument.
SrgsDocument document = new SrgsDocument();
// Create the Main rule and add it to the document.
SrgsRule mainRule = new SrgsRule("Main");
mainRule.Scope = SrgsRuleScope.Public;
SrgsItem item = new SrgsItem("Can I get a shuttle in");
// Create a relative URI for the cities rule.
Uri ruleUri = new Uri("cities.xml#Cities", UriKind.Relative);
item.Add(new SrgsRuleRef(ruleUri));
mainRule.Add(item);
document.Rules.Add(mainRule);
// Set the root rule.
document.Root = mainRule;
// Create the grammar.
Uri baseUri = new Uri(@"file://c:\temp\");
Grammar citiesGrammar = new Grammar(document, null, baseUri);
citiesGrammar.Name = "SrgsDocument Cities Grammar 3";
return citiesGrammar;
}
<?xml version="1.0" encoding="UTF-8" ?>
<grammar version="1.0" xml:lang="en-US"
xmlns="http://www.w3.org/2001/06/grammar"
tag-format="semantics/1.0" root="Main">
<!-- cities.xml:
Defines an SRGS grammar for requesting a flight. This grammar includes
a Cities rule that lists the cities that can be used for departures
and destinations. -->
<rule id="Main">
<item>
I would like to fly from <ruleref uri="#Cities"/>
to <ruleref uri="#Cities"/>
</item>
</rule>
<rule id="Cities" scope="public">
<one-of>
<item>Seattle</item>
<item>Los Angeles</item>
<item>New York</item>
<item>Miami</item>
</one-of>
</rule>
</grammar>
설명
이 생성자는 초기화 처리기에 매개 변수를 전달하지 않으며 인수 SrgsDocument 가 필요한 초기화 처리기를 포함하지 않아야 합니다.
이 생성자는 유효성을 검사 baseUri
하지 않습니다. 그러나 문법 설명에서 LoadGrammar
모든 규칙 참조를 SpeechRecognitionEngine 확인할 수 없는 경우 개체의 SpeechRecognizer 메서드는 예외를 throw합니다. 그렇지 않은 null
경우 baseUri
메서드는 LoadGrammar
URI를 사용하여 다른 방법으로 확인할 수 없는 규칙 참조를 확인합니다. 파일을 나타내는 경우 baseUri
메서드는 LoadGrammar
상대 규칙 참조를 확인하려고 할 때 지정된 파일과 파일의 디렉터리를 모두 사용합니다.
추가 정보
- System.Speech.Recognition.SrgsGrammar
- SrgsDocument
- SpeechRecognitionEngine
- SpeechRecognizer
- 음성 인식 문법 사양
적용 대상
Grammar(SrgsDocument, String, Object[])
Grammar의 인스턴스에서의 SrgsDocument 클래스의 새 인스턴스를 초기화하며, 문법으로의 진입점이 될 규칙의 이름을 지정합니다.
public:
Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ srgsDocument, System::String ^ ruleName, cli::array <System::Object ^> ^ parameters);
public Grammar (System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument, string ruleName, object[] parameters);
new System.Speech.Recognition.Grammar : System.Speech.Recognition.SrgsGrammar.SrgsDocument * string * obj[] -> System.Speech.Recognition.Grammar
Public Sub New (srgsDocument As SrgsDocument, ruleName As String, parameters As Object())
매개 변수
- srgsDocument
- SrgsDocument
음성 인식 문법에 대한 제약 조건을 포함하는 SrgsDocument의 인스턴스
- ruleName
- String
음성 인식 문법의 진입점으로 사용하는 규칙의 식별자이거나, 문법 설명의 기본 루트 규칙을 사용하는 null
입니다.
- parameters
- Object[]
생성되는 OnInit의 루트 규칙 또는 진입점에 대한 Grammar 속성에 지정된 초기화 처리기에 전달되는 매개 변수입니다. 이 매개 변수는 null일 수 있습니다.
예외
매개 변수에 잘못된 값이 있는 경우
srgsDocument
에서 지정한 SrgsDocument는ruleName
에서 지정한 규칙을 포함하지 않습니다.배열 매개 변수의 내용이 규칙의 초기화 처리기의 인수와 일치하지 않습니다.
설명
초기화 처리기에 대한 매개 변수도 지정할 수 있습니다.
적용 대상
Grammar(Stream, String, Uri)
스트림에서의 Grammar 클래스의 새 인스턴스를 초기화하며, 루트 규칙을 지정하고, 상대 규칙 참조를 확인하기 위해 기본 URI(Uniform Resource Identifier)를 정의합니다.
public:
Grammar(System::IO::Stream ^ stream, System::String ^ ruleName, Uri ^ baseUri);
public Grammar (System.IO.Stream stream, string ruleName, Uri baseUri);
new System.Speech.Recognition.Grammar : System.IO.Stream * string * Uri -> System.Speech.Recognition.Grammar
Public Sub New (stream As Stream, ruleName As String, baseUri As Uri)
매개 변수
- stream
- Stream
지원되는 형식의 음성 인식을 문법을 설명하는 스트림
- ruleName
- String
음성 인식 문법의 진입점으로 사용하는 규칙의 식별자이거나, 문법 설명의 기본 루트 규칙을 사용하는 null
입니다.
- baseUri
- Uri
문법 설명에서 관련 규칙 참조를 해결하기 위해 사용하는 기본 URI 또는 null
입니다.
예외
ruleName
을 확인할 수 없거나 public이 아닙니다. 또는 ruleName
은 null
이고 문법 설명에서 루트 규칙을 정의하지 않습니다.
stream
이(가) null
인 경우
스트림에 올바른 설명이 포함되어 있지 않거나 스트림이 확인할 수 없는 규칙 참조가 포함된 문법을 설명합니다.
예제
다음 예제에서는 파일 스트림에서 로컬 SRGS 파일(shuttle.xml)을 로드합니다. 파일에는 cities.xml 파일의 규칙에 대한 상대 규칙 참조가 포함되어 있으며 규칙 참조를 확인하는 데 사용할 기본 URI를 지정합니다. shuttle.xml 및 cities.xml 파일의 콘텐츠는 C# 예제를 따르는 XML 예제에 표시됩니다.
private static Grammar CreateGrammarFromStream3()
{
FileInfo file = new FileInfo(@".\shuttle.xml");
Uri baseUri = new Uri(@"file://c:\temp\");
Grammar citiesGrammar = new Grammar(file.OpenRead(), null, baseUri);
citiesGrammar.Name = "Stream Cities Grammar 3";
return citiesGrammar;
}
<?xml version="1.0" encoding="UTF-8" ?>
<grammar version="1.0" xml:lang="en-US"
xmlns="http://www.w3.org/2001/06/grammar"
tag-format="semantics/1.0" root="Main">
<!-- shuttle.xml:
Defines an SRGS grammar for asking about a shuttle service. This grammar
references a Cities rule that is defined in the cities.xml grammar. -->
<rule id="Main">
<item>
Can I get a shuttle in
<ruleref uri="cities.xml#Cities"/>
</item>
</rule>
</grammar>
<?xml version="1.0" encoding="UTF-8" ?>
<grammar version="1.0" xml:lang="en-US"
xmlns="http://www.w3.org/2001/06/grammar"
tag-format="semantics/1.0" root="Main">
<!-- cities.xml:
Defines an SRGS grammar for requesting a flight. This grammar includes
a Cities rule that lists the cities that can be used for departures
and destinations. -->
<rule id="Main">
<item>
I would like to fly from <ruleref uri="#Cities"/>
to <ruleref uri="#Cities"/>
</item>
</rule>
<rule id="Cities" scope="public">
<one-of>
<item>Seattle</item>
<item>Los Angeles</item>
<item>New York</item>
<item>Miami</item>
</one-of>
</rule>
</grammar>
설명
이 생성자는 초기화 처리기에 매개 변수를 전달하지 않으며 설명은 인수가 필요한 초기화 처리기를 정의해서는 안 됩니다.
이 생성자는 다음 형식에서 인스턴스를 만들 Grammar 수 있습니다.
W3C에 따르는 XML 형식 파일 음성 인식 문법 Specification (SRGS) 버전 1.0
.cfg 파일 확장자를 사용하여 이진 파일로 컴파일된 문법
이 생성자는 XML 형식 문법 파일을 이진 형식으로 컴파일하여 음성 인식 엔진의 로드 및 사용을 최적화합니다. 메서드 중 하나를 Compile 사용하여 사전에 문법을 컴파일하여 XML 형식 문법에서 개체를 생성하는 Grammar 데 필요한 시간을 줄일 수 있습니다.
이 생성자는 유효성을 검사 baseUri
하지 않습니다. 그러나 문법 설명에서 LoadGrammar
모든 규칙 참조를 SpeechRecognitionEngine 확인할 수 없는 경우 개체의 SpeechRecognizer 메서드는 예외를 throw합니다. 그렇지 않은 null
경우 baseUri
메서드는 LoadGrammar
URI를 사용하여 다른 방법으로 확인할 수 없는 규칙 참조를 확인합니다. 파일을 LoadGrammar
나타내는 경우 baseUri
상대 규칙 참조를 확인하려고 할 때 지정된 파일과 파일의 디렉터리를 모두 사용합니다.
추가 정보
적용 대상
Grammar(Stream, String, Object[])
public:
Grammar(System::IO::Stream ^ stream, System::String ^ ruleName, cli::array <System::Object ^> ^ parameters);
public Grammar (System.IO.Stream stream, string ruleName, object[] parameters);
new System.Speech.Recognition.Grammar : System.IO.Stream * string * obj[] -> System.Speech.Recognition.Grammar
Public Sub New (stream As Stream, ruleName As String, parameters As Object())
매개 변수
- ruleName
- String
음성 인식 문법의 진입점으로 사용하는 규칙의 식별자이거나, 문법 설명의 기본 루트 규칙을 사용하는 null
입니다.
- parameters
- Object[]
생성되는 OnInit의 루트 규칙 또는 진입점에 대한 Grammar 속성에 지정된 초기화 처리기에 전달되는 매개 변수입니다. 이 매개 변수는 null일 수 있습니다.
예외
stream
은 다음 문법으로 연결합니다:
ruleName
에 지정된 규칙을 포함하지 않습니다.parameters
에서 정해진 것들과 다른 초기화 매개 변수를 요구합니다.문법에 대한 기본 기본 Uri 규칙으로 확인할 수 없는 상대 규칙 참조를 포함합니다.
설명
초기화 처리기에 대한 매개 변수도 지정할 수 있습니다.
적용 대상
Grammar(String, String, Object[])
문법 정의를 포함하는 파일에서의 Grammar 클래스의 새 인스턴스를 초기화하며, 문법으로의 진입점이 될 규칙의 이름을 지정합니다.
public:
Grammar(System::String ^ path, System::String ^ ruleName, cli::array <System::Object ^> ^ parameters);
public Grammar (string path, string ruleName, object[] parameters);
new System.Speech.Recognition.Grammar : string * string * obj[] -> System.Speech.Recognition.Grammar
Public Sub New (path As String, ruleName As String, parameters As Object())
매개 변수
- path
- String
DLL을 포함한 문법 사양이 들어 있는 파일의 경로입니다.
- ruleName
- String
음성 인식 문법의 진입점으로 사용하는 규칙의 식별자이거나, 문법 설명의 기본 루트 규칙을 사용하는 null
입니다.
- parameters
- Object[]
생성되는 OnInit의 루트 규칙 또는 진입점에 대한 Grammar 속성에 지정된 초기화 처리기에 전달되는 매개 변수입니다. 이 매개 변수는 null일 수 있습니다.
예외
매개 변수에 잘못된 값이 있는 경우
path
에서 지정된 파일에 유효한 문법이나ruleName
에 지정된 규칙이 없습니다.배열 매개 변수의 내용이 규칙의 초기화 처리기의 인수와 일치하지 않습니다.
문법은 문법에 대한 기본 기준 Uri 규칙으로 확인할 수 없는 상대 규칙 참조를 포함합니다.
설명
초기화 처리기에 대한 매개 변수도 지정할 수 있습니다.
적용 대상
Grammar(SrgsDocument, String)
개체에서 클래스의 새 인스턴스를 Grammar SrgsDocument 초기화하고 루트 규칙을 지정합니다.
public:
Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ srgsDocument, System::String ^ ruleName);
public Grammar (System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument, string ruleName);
new System.Speech.Recognition.Grammar : System.Speech.Recognition.SrgsGrammar.SrgsDocument * string -> System.Speech.Recognition.Grammar
Public Sub New (srgsDocument As SrgsDocument, ruleName As String)
매개 변수
- srgsDocument
- SrgsDocument
음성 인식 문법에 대한 제약 조건입니다.
- ruleName
- String
음성 인식 문법의 진입점으로 사용하는 규칙의 식별자 또는 SrgsDocument의 기본 루트 규칙을 사용하는 null
예외
ruleName
을 확인할 수 없거나 public이 아닙니다. 또는 ruleName
은 null
이고 srgsDocument
에 루트 규칙이 포함되지 않습니다.
srgsDocument
이(가) null
인 경우
srgsDocument
확인할 수 없는 규칙 참조를 포함합니다.
예제
다음 예제에서는 인스턴스에서 음성 인식 문법을 SrgsDocument 만들고 문법의 루트 규칙으로 사용할 규칙을 지정합니다. 이 예제에서는 인스턴스에서 개체를 Grammar SrgsDocument 생성하고 음성 인식 엔진에 로드합니다.
using System;
using System.Speech.Recognition;
using System.Speech.Recognition.SrgsGrammar;
namespace SampleRecognition
{
class Program
{
static void Main(string[] args)
// Initialize an in-process speech recognition engine.
{
using (SpeechRecognitionEngine recognizer =
new SpeechRecognitionEngine())
{
// Create the SrgsDocument.
SrgsDocument document = new SrgsDocument();
// Create the Cities rule and add it to the document.
SrgsRule citiesRule = new SrgsRule("Cities");
citiesRule.Scope = SrgsRuleScope.Public;
SrgsOneOf cityChoice = new SrgsOneOf();
cityChoice.Add(new SrgsItem("Seattle"));
cityChoice.Add(new SrgsItem("Los Angeles"));
cityChoice.Add(new SrgsItem("New York"));
cityChoice.Add(new SrgsItem("Miami"));
citiesRule.Add(cityChoice);
document.Rules.Add(citiesRule);
// Create the Main rule and add it to the document.
SrgsRule mainRule = new SrgsRule("Main");
mainRule.Scope = SrgsRuleScope.Public;
mainRule.Add(new SrgsItem("I would like to fly from"));
mainRule.Add(new SrgsRuleRef(citiesRule));
mainRule.Add(new SrgsItem("to"));
mainRule.Add(new SrgsRuleRef(citiesRule));
document.Rules.Add(mainRule);
// Create the Grammar object and specify which rule to use as the root.
Grammar citiesGrammar = new Grammar(document,"Main");
// Load the grammar object to the recognizer.
recognizer.LoadGrammarAsync(citiesGrammar);
// Attach a handler for the SpeechRecognized event.
recognizer.SpeechRecognized +=
new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
// Set the input to the recognizer.
recognizer.SetInputToDefaultAudioDevice();
// Start recognition.
recognizer.RecognizeAsync();
Console.WriteLine("Starting asynchronous recognition...");
// Keep the console window open.
Console.ReadLine();
}
}
// Handle the SpeechRecognized event.
static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
Console.WriteLine(" Speech recognized: " + e.Result.Text);
}
}
}
설명
이 생성자는 초기화 처리기에 매개 변수를 전달하지 않으며 인수 SrgsDocument 가 필요한 초기화 처리기를 포함해서는 안 됩니다.
a에서 개체를 Grammar SrgsDocument 만들고 상대 규칙 참조를 확인하는 데 사용할 기본 URI를 지정하려면 생성자를 사용합니다 Grammar .
추가 정보
- System.Speech.Recognition.SrgsGrammar
- SrgsDocument
- SpeechRecognizer
- SpeechRecognitionEngine
- 음성 인식 문법 사양
적용 대상
Grammar(Stream, String)
public:
Grammar(System::IO::Stream ^ stream, System::String ^ ruleName);
public Grammar (System.IO.Stream stream, string ruleName);
new System.Speech.Recognition.Grammar : System.IO.Stream * string -> System.Speech.Recognition.Grammar
Public Sub New (stream As Stream, ruleName As String)
매개 변수
- stream
- Stream
지원되는 형식의 음성 인식을 문법을 설명하는 스트림
- ruleName
- String
음성 인식 문법의 진입점으로 사용하는 규칙의 식별자이거나, 문법 설명의 기본 루트 규칙을 사용하는 null
입니다.
예외
ruleName
을 확인할 수 없거나 public이 아닙니다. 또는 ruleName
은 null
이고 문법 설명에서 루트 규칙을 정의하지 않습니다.
stream
이(가) null
인 경우
스트림에 올바른 설명이 포함되어 있지 않거나 스트림이 확인할 수 없는 규칙 참조가 포함된 문법을 설명합니다.
예제
다음 예제에서는 파일 스트림에서 로컬 SRGS 파일(cities.xml)을 로드하고 문법의 루트로 사용할 규칙을 지정합니다. cities.xml 파일의 내용은 C# 예제 다음에 나오는 XML 예제에 나타납니다.
// Load a cities grammar from an I/O stream, use a specific
// rule as the root of the grammar, and return the new grammar.
private static Grammar CreateGrammarFromStream2()
{
FileInfo file = new FileInfo(@"c:\temp\cities.xml");
Grammar citiesGrammar = new Grammar(file.OpenRead(), "Main");
citiesGrammar.Name = "Stream Cities Grammar 2";
return citiesGrammar;
}
<?xml version="1.0" encoding="UTF-8" ?>
<grammar version="1.0" xml:lang="en-US"
xmlns="http://www.w3.org/2001/06/grammar"
tag-format="semantics/1.0" root="Main">
<!-- cities.xml:
Defines an SRGS grammar for requesting a flight. This grammar includes
a Cities rule that lists the cities that can be used for departures
and destinations. -->
<rule id="Main">
<item>
I would like to fly from <ruleref uri="#Cities"/>
to <ruleref uri="#Cities"/>
</item>
</rule>
<rule id="Cities" scope="public">
<one-of>
<item>Seattle</item>
<item>Los Angeles</item>
<item>New York</item>
<item>Miami</item>
</one-of>
</rule>
</grammar>
설명
이 생성자는 초기화 처리기에 매개 변수를 전달하지 않으며 설명은 인수가 필요한 초기화 처리기를 정의해서는 안 됩니다.
이 생성자는 다음 형식에서 Grammar 인스턴스를 만들 수 있습니다.
W3C에 따르는 XML 형식 파일 음성 인식 문법 Specification (SRGS) 버전 1.0
.cfg 파일 확장자를 사용하여 이진 파일로 컴파일된 문법
이 생성자는 XML 형식 문법 파일을 이진 형식으로 컴파일하여 음성 인식 엔진의 로드 및 사용을 최적화합니다. 메서드 중 하나를 Compile 사용하여 문법을 미리 컴파일하여 XML 형식 문법에서 개체를 생성하는 Grammar 데 필요한 시간을 줄일 수 있습니다.
스트림에서 만들고 Grammar 상대 규칙 참조를 확인하는 데 사용할 기본 URI를 지정하려면 생성자를 사용합니다 Grammar .
추가 정보
적용 대상
Grammar(String)
파일에서 Grammar 클래스의 새 인스턴스를 초기화합니다.
public:
Grammar(System::String ^ path);
public Grammar (string path);
new System.Speech.Recognition.Grammar : string -> System.Speech.Recognition.Grammar
Public Sub New (path As String)
매개 변수
- path
- String
지원되는 형식으로 음성 인식 문법을 설명하는 파일의 경로입니다.
예외
path
가 빈 문자열("")을 포함하거나, 또는 파일이 루트 규칙을 포함하지 않는 문법을 설명합니다.
path
이(가) null
인 경우
파일에 올바른 설명이 포함되어 있지 않거나, 확인할 수 없는 규칙 참조가 포함된 문법을 설명합니다.
예제
다음 예제에서는 로컬 SRGS 파일에서 음성 인식 문법을 로드하여 개체를 빌드합니다 Grammar . cities.xml 파일의 내용은 C# 예제 다음에 나오는 XML 예제에 나타납니다.
// Load a cities grammar from a local file and
// return the new grammar.
private static Grammar CreateGrammarFromFile()
{
Grammar citiesGrammar = new Grammar(@"c:\temp\cities.xml");
citiesGrammar.Name = "SRGS File Cities Grammar";
return citiesGrammar;
}
<?xml version="1.0" encoding="UTF-8" ?>
<grammar version="1.0" xml:lang="en-US"
xmlns="http://www.w3.org/2001/06/grammar"
tag-format="semantics/1.0" root="Main">
<!-- cities.xml:
Defines an SRGS grammar for requesting a flight. This grammar includes
a Cities rule that lists the cities that can be used for departures
and destinations. -->
<rule id="Main">
<item>
I would like to fly from <ruleref uri="#Cities"/>
to <ruleref uri="#Cities"/>
</item>
</rule>
<rule id="Cities" scope="public">
<one-of>
<item>Seattle</item>
<item>Los Angeles</item>
<item>New York</item>
<item>Miami</item>
</one-of>
</rule>
</grammar>
설명
이 생성자는 초기화 처리기에 매개 변수를 전달하지 않으며 설명은 인수가 필요한 초기화 처리기를 정의해서는 안 됩니다.
이 생성자는 다음 형식에서 Grammar 인스턴스를 만들 수 있습니다.
W3C에 따르는 XML 형식 파일 음성 인식 문법 Specification (SRGS) 버전 1.0
.cfg 파일 확장자를 사용하여 이진 파일로 컴파일된 문법
이 생성자는 XML 형식 문법 파일을 이진 형식으로 컴파일하여 음성 인식 엔진의 로드 및 사용을 최적화합니다. 메서드 중 하나를 Compile 사용하여 문법을 미리 컴파일하여 XML 형식 문법에서 개체를 생성하는 Grammar 데 필요한 시간을 줄일 수 있습니다.
SRGS 문법은 루트 규칙을 정의할 수 있습니다. 문자열에서 개체를 Grammar 만들고 루트 규칙을 지정하려면 생성자를 사용합니다 Grammar .
상대 규칙 참조를 Grammar 확인하는 데 사용할 기본 URI를 지정하는 개체를 만들려면 파일 스트림에서 파일을 열고 생성자를 사용합니다 Grammar.Grammar .
추가 정보
적용 대상
Grammar(SrgsDocument)
Grammar 개체를 사용하여 SrgsDocument 클래스의 새 인스턴스를 초기화합니다.
public:
Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ srgsDocument);
public Grammar (System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument);
new System.Speech.Recognition.Grammar : System.Speech.Recognition.SrgsGrammar.SrgsDocument -> System.Speech.Recognition.Grammar
Public Sub New (srgsDocument As SrgsDocument)
매개 변수
- srgsDocument
- SrgsDocument
음성 인식 문법에 대한 제약 조건입니다.
예외
srgsDocument
에 루트 규칙이 포함되지 않습니다.
srgsDocument
이(가) null
인 경우
srgsDocument
확인할 수 없는 규칙 참조를 포함합니다.
예제
다음 예제에서는 인스턴스에서 음성 인식 문법을 SrgsDocument 만든 다음 개체를 Grammar 생성하는 데 사용됩니다.
private static Grammar CreateSrgsDocumentGrammar()
{
// Create the SrgsDocument.
SrgsDocument document = new SrgsDocument();
// Create the Cities rule and add it to the document.
SrgsRule citiesRule = new SrgsRule("Cities");
SrgsOneOf cityChoice = new SrgsOneOf();
cityChoice.Add(new SrgsItem("Seattle"));
cityChoice.Add(new SrgsItem("Los Angeles"));
cityChoice.Add(new SrgsItem("New York"));
cityChoice.Add(new SrgsItem("Miami"));
citiesRule.Add(cityChoice);
document.Rules.Add(citiesRule);
// Create the Main rule and add it to the document.
SrgsRule mainRule = new SrgsRule("Main");
mainRule.Scope = SrgsRuleScope.Public;
SrgsItem item = new SrgsItem("I would like to fly from");
item.Add(new SrgsRuleRef(citiesRule));
item.Add(new SrgsText("to"));
item.Add(new SrgsRuleRef(citiesRule));
mainRule.Add(item);
document.Rules.Add(mainRule);
// Set the root rule.
document.Root = mainRule;
// Create the Grammar object.
Grammar citiesGrammar = new Grammar(document);
citiesGrammar.Name = "SrgsDocument Cities Grammar";
return citiesGrammar;
}
설명
이 생성자는 초기화 처리기에 매개 변수를 전달하지 않으며 인수 SrgsDocument 가 필요한 초기화 처리기를 포함해서는 안 됩니다.
A에는 SrgsDocument 루트 규칙이 있을 수 있습니다. 루트 규칙을 지정하는 개체를 만들 Grammar 려면 또는 Grammar 생성자를 사용합니다Grammar.
음성 인식을 Grammar SrgsDocument 만들고 상대 규칙 참조를 확인하는 데 사용할 기본 URI를 지정하려면 생성자를 사용합니다 Grammar .
추가 정보
- System.Speech.Recognition.SrgsGrammar
- SrgsDocument
- SpeechRecognizer
- SpeechRecognitionEngine
- 음성 인식 문법 사양
적용 대상
Grammar(String, String)
파일에서 Grammar 클래스의 새로운 인스턴스를 초기화하고 루트 규칙을 지정합니다.
public:
Grammar(System::String ^ path, System::String ^ ruleName);
public Grammar (string path, string ruleName);
new System.Speech.Recognition.Grammar : string * string -> System.Speech.Recognition.Grammar
Public Sub New (path As String, ruleName As String)
매개 변수
- path
- String
지원되는 형식으로 음성 인식 문법을 설명하는 파일의 경로입니다.
- ruleName
- String
음성 인식 문법의 진입점으로 사용하는 규칙의 식별자이거나, 문법 설명의 기본 루트 규칙을 사용하는 null
입니다.
예외
ruleName
이 확인할 수 없거나 public이 아닙니다. 또는 path
가 빈 문자열("")이거나 ruleName
은 null
이고 문법 설명에서 루트 규칙을 정의하지 않습니다.
path
이(가) null
인 경우
파일에 올바른 설명이 포함되어 있지 않거나 확인할 수 없는 규칙 참조가 포함된 문법을 설명합니다.
예제
다음 예제에서는 파일에서 로컬 SRGS 파일(cities.xml)을 로드하고 문법의 루트로 사용할 규칙을 지정합니다. cities.xml 파일의 내용은 C# 예제를 따르는 XML 예제에 나타납니다.
// Load a cities grammar from a local file, use a specific
// rule as the root of the grammar, and return the new grammar.
private static Grammar CreateGrammarFromFile2()
{
Grammar citiesGrammar = new Grammar(@"c:\temp\cities.xml", "Main");
citiesGrammar.Name = "SRGS File Cities Grammar 2";
return citiesGrammar;
}
<?xml version="1.0" encoding="UTF-8" ?>
<grammar version="1.0" xml:lang="en-US"
xmlns="http://www.w3.org/2001/06/grammar"
tag-format="semantics/1.0" root="Main">
<!-- cities.xml:
Defines an SRGS grammar for requesting a flight. This grammar includes
a Cities rule that lists the cities that can be used for departures
and destinations. -->
<rule id="Main">
<item>
I would like to fly from <ruleref uri="#Cities"/>
to <ruleref uri="#Cities"/>
</item>
</rule>
<rule id="Cities" scope="public">
<one-of>
<item>Seattle</item>
<item>Los Angeles</item>
<item>New York</item>
<item>Miami</item>
</one-of>
</rule>
</grammar>
설명
이 생성자는 초기화 처리기에 매개 변수를 전달하지 않으며 설명은 인수가 필요한 초기화 처리기를 정의해서는 안 됩니다.
이 생성자는 다음 형식에서 인스턴스를 만들 Grammar 수 있습니다.
W3C에 따르는 XML 형식 파일 음성 인식 문법 Specification (SRGS) 버전 1.0
.cfg 파일 확장자를 사용하여 이진 파일로 컴파일된 문법
이 생성자는 XML 형식 문법 파일을 이진 형식으로 컴파일하여 음성 인식 엔진의 로드 및 사용을 최적화합니다. 메서드 중 하나를 Compile 사용하여 사전에 문법을 컴파일하여 XML 형식 문법에서 개체를 생성하는 Grammar 데 필요한 시간을 줄일 수 있습니다.
상대 규칙 참조를 Grammar 확인하는 데 사용할 기본 URI를 지정하는 URI를 만들려면 파일에 대한 파일 스트림을 열고 생성자를 사용합니다 Grammar .
추가 정보
적용 대상
Grammar(GrammarBuilder)
Grammar 개체에서 GrammarBuilder 클래스의 새 인스턴스를 초기화합니다.
public:
Grammar(System::Speech::Recognition::GrammarBuilder ^ builder);
public Grammar (System.Speech.Recognition.GrammarBuilder builder);
new System.Speech.Recognition.Grammar : System.Speech.Recognition.GrammarBuilder -> System.Speech.Recognition.Grammar
Public Sub New (builder As GrammarBuilder)
매개 변수
- builder
- GrammarBuilder
음성 인식 문법에 대한 제약 조건을 포함하는 GrammarBuilder의 인스턴스
예제
다음 예제에서는 음성 인식 문법을 사용 하 여 Choices 개체를 GrammarBuilder 만듭니다. Grammar 생성자는 개체에서 Grammar 개체를 GrammarBuilder 만듭니다.
// Create a grammar using a GrammarBuilder and return the new grammar.
private static Grammar CreateGrammarBuilderGrammar()
{
GrammarBuilder builder = new GrammarBuilder();
Choices cityChoice = new Choices (new string[]
{"Seattle", "New York", "Miami", "Los Angeles"});
builder.Append("I would like to fly from");
builder.Append(cityChoice);
builder.Append("to");
builder.Append(cityChoice);
Grammar citiesGrammar = new Grammar(builder);
citiesGrammar.Name = "GrammarBuilder Cities Grammar";
return citiesGrammar;
}
추가 정보
적용 대상
Grammar(Stream)
public:
Grammar(System::IO::Stream ^ stream);
public Grammar (System.IO.Stream stream);
new System.Speech.Recognition.Grammar : System.IO.Stream -> System.Speech.Recognition.Grammar
Public Sub New (stream As Stream)
매개 변수
- stream
- Stream
지원되는 형식의 음성 인식을 문법을 설명하는 스트림
예외
stream
은 루트 규칙을 포함하지 않는 문법을 설명합니다.
stream
이(가) null
인 경우
스트림에 문법에 대한 올바른 설명이 포함되어 있지 않거나 스트림이 확인할 수 없는 규칙 참조가 포함된 문법을 설명합니다.
예제
다음 예제에서는 파일 스트림을 사용하여 로컬 SRGS 파일(cities.xml)에서 음성 인식 문법을 만듭니다. C# 예제에 따라 cities.xml 파일의 내용이 나타납니다.
// Load a cities grammar from an I/O stream and
// return the new grammar.
private static Grammar CreateGrammarFromStream()
{
string fileName = @"c:\temp\cities.xml";
Grammar citiesGrammar =
new Grammar(new FileStream(fileName, FileMode.Open));
citiesGrammar.Name = "Stream Cities Grammar";
return citiesGrammar;
}
<?xml version="1.0" encoding="UTF-8" ?>
<grammar version="1.0" xml:lang="en-US"
xmlns="http://www.w3.org/2001/06/grammar"
tag-format="semantics/1.0" root="Main">
<!-- cities.xml:
Defines an SRGS grammar for requesting a flight. This grammar includes
a Cities rule that lists the cities that can be used for departures
and destinations. -->
<rule id="Main">
<item>
I would like to fly from <ruleref uri="#Cities"/>
to <ruleref uri="#Cities"/>
</item>
</rule>
<rule id="Cities" scope="public">
<one-of>
<item>Seattle</item>
<item>Los Angeles</item>
<item>New York</item>
<item>Miami</item>
</one-of>
</rule>
</grammar>
설명
이 생성자는 초기화 처리기에 매개 변수를 전달하지 않으며 설명은 인수가 필요한 초기화 처리기를 정의해서는 안 됩니다.
이 생성자는 다음 형식에서 Grammar 인스턴스를 만들 수 있습니다.
W3C에 따르는 XML 형식 파일 음성 인식 문법 Specification (SRGS) 버전 1.0
.cfg 파일 확장자를 사용하여 이진 파일로 컴파일된 문법
이 생성자는 XML 형식 문법 파일을 이진 형식으로 컴파일하여 음성 인식 엔진의 로드 및 사용을 최적화합니다. 메서드 중 하나를 Compile 사용하여 문법을 미리 컴파일하여 XML 형식 문법에서 개체를 생성하는 Grammar 데 필요한 시간을 줄일 수 있습니다.
SRGS 문법은 루트 규칙을 정의할 수 있습니다. 스트림에서 개체를 Grammar 만들고 루트 규칙을 지정하려면 해당 또는 Grammar 생성자를 사용합니다Grammar.
스트림에서 개체를 Grammar 만들고 상대 규칙 참조를 확인하는 데 사용할 기본 URI를 지정하려면 생성자를 사용합니다 Grammar .