GrammarBuilder.AppendRuleReference 메서드

정의

문법 파일 또는 문법 규칙을 현재 문법 요소 시퀀스에 추가합니다.

오버로드

Name Description
AppendRuleReference(String)

문법 정의 파일을 문법 요소의 현재 시퀀스에 추가합니다.

AppendRuleReference(String, String)

문법 정의 파일의 지정된 규칙을 현재 문법 요소 시퀀스에 추가합니다.

설명

메서드는 AppendRuleReference 파일에서 문법 파일 또는 문법 규칙을 추가할 수 있습니다. 이러한 메서드를 사용하면 애플리케이션이 미리 배포되거나 공개적으로 사용 가능한 문법 규칙을 사용할 수 있습니다. 애플리케이션은 지정된 문법 파일의 위치에 대한 읽기 권한이 있어야 합니다.

이러한 메서드는 다음 형식에서 음성 인식 문법을 읽을 수 있습니다.

XML 형식 SRGS 문법 파일을 .cfg 확장명으로 이진 문법 파일로 컴파일하면 일치 항목을 검색하는 데 걸리는 시간을 줄일 수 있습니다. 특히 문법에 많은 단어와 구를 인식해야 하는 경우 그렇습니다. SRGS 문법을 CFG 이진 형식으로 컴파일하는 방법에 대한 자세한 내용은 다음을 참조하세요 SrgsGrammarCompiler.

AppendRuleReference(String)

Source:
GrammarBuilder.cs
Source:
GrammarBuilder.cs
Source:
GrammarBuilder.cs
Source:
GrammarBuilder.cs

문법 정의 파일을 문법 요소의 현재 시퀀스에 추가합니다.

public:
 void AppendRuleReference(System::String ^ path);
public void AppendRuleReference(string path);
member this.AppendRuleReference : string -> unit
Public Sub AppendRuleReference (path As String)

매개 변수

path
String

지원되는 형식으로 음성 인식 문법을 설명하는 파일의 경로 또는 URI(유니버설 리소스 식별자)입니다.

예제

다음 C# 예제에서는 로컬 SRGS 파일인 cities.grxml에 명명된 Cities 규칙을 사용하는 음성 인식 문법을 만듭니다. cities.grxml 파일의 콘텐츠는 C# 코드 예제 아래에 표시됩니다.

private static Grammar CreateCitiesGrammar1()
{
  GrammarBuilder builder = new GrammarBuilder();
  builder.AppendRuleReference("file://c:/temp/cities.grxml");

  Grammar citiesGrammar = new Grammar(builder);
  citiesGrammar.Name = "Cities Grammar 1";
  return citiesGrammar;
}
<?xml version="1.0" encoding="UTF-16" ?>
<grammar version="1.0" xml:lang="en-US"
         xmlns="http://www.w3.org/2001/06/grammar"
         tag-format="semantics/1.0" root="Main">

  <!-- cities.grxml:
    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>

설명

Important

신뢰할 수 없는 데이터와 함께 이 형식의 인스턴스를 사용하는 것은 보안 위험입니다. 신뢰할 수 있는 데이터에서만 이 개체를 사용합니다. 자세한 내용은 모든 입력 유효성 검사참조하세요.

인수에서 제공하는 URI는 path 로컬 또는 원격일 수 있습니다. 애플리케이션은 지정된 문법 파일의 위치에 대한 읽기 권한이 있어야 합니다.

W3C SRGS(Speech Recognition Grammar Specification) 표현은 루트 규칙을 정의할 수 있습니다. 이 메서드는 해당 루트 규칙부터 시작하여 문법 요소의 현재 시퀀스에 문법을 추가합니다. 특정 문법 규칙을 추가하려면 메서드를 AppendRuleReference 사용합니다.

추가 정보

적용 대상

AppendRuleReference(String, String)

Source:
GrammarBuilder.cs
Source:
GrammarBuilder.cs
Source:
GrammarBuilder.cs
Source:
GrammarBuilder.cs

문법 정의 파일의 지정된 규칙을 현재 문법 요소 시퀀스에 추가합니다.

public:
 void AppendRuleReference(System::String ^ path, System::String ^ rule);
public void AppendRuleReference(string path, string rule);
member this.AppendRuleReference : string * string -> unit
Public Sub AppendRuleReference (path As String, rule As String)

매개 변수

path
String

지원되는 형식으로 음성 인식 문법을 설명하는 파일의 파일 경로 또는 URI(유니버설 리소스 식별자)입니다.

rule
String

문법 파일의 기본 루트 규칙을 추가하거나 null 추가할 규칙의 식별자입니다.

예제

다음 C# 예제에서는 로컬 SRGS 파일인 cities.grxml에 명명된 Cities 규칙을 사용하는 음성 인식 문법을 만듭니다. cities.grxml 파일의 콘텐츠는 C# 코드 예제 아래에 표시됩니다.

private static Grammar CreateCitiesGrammar2()
{
  GrammarBuilder builder = new GrammarBuilder();
  builder.Append("Does");
  builder.AppendRuleReference(@"c:\temp\cities.grxml", "Cities");
  builder.Append("have a shuttle");

  Grammar citiesGrammar = new Grammar(builder);
  citiesGrammar.Name = "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.grxml:
    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>

설명

Important

신뢰할 수 없는 데이터와 함께 이 형식의 인스턴스를 사용하는 것은 보안 위험입니다. 신뢰할 수 있는 데이터에서만 이 개체를 사용합니다. 자세한 내용은 모든 입력 유효성 검사참조하세요.

인수에서 제공하는 URI는 path 로컬 또는 원격일 수 있습니다. 애플리케이션은 지정된 문법 파일의 위치에 대한 읽기 권한이 있어야 합니다.

이 메서드를 AppendRuleReference 사용하여 루트 규칙으로 시작하는 문법 파일을 추가할 수 있습니다.

추가 정보

적용 대상