Rule Grammar
使用 grammar 文件 进行语音识别
在 AmiVoice API Private 中可用的"音声入力_ルール"引擎(-a-rule-input-private)中,可以使用用户创建的 grammar 文件 进行语音识别。例如,在 IVR 系统中进行客户信息的语音识别时,对于确认会员号码等基于特定 rule 且仅使用有限词汇的预期发话场景,这种方法非常有效。
Grammar 文件 格式
"音声入力_ルール"引擎可以使用 JSpeech Grammar Format(JSGF)描述的 grammar 文件 (JSGF grammar 文件 ),或者 Speech Recognition Grammar Specification(SRGS)描述的 grammar 文件 (SRGF grammar 文件 ) 。使用这些格式,可以有限地描述希望语音识别引擎识别的短语(单词集)和标签(当短语被识别时作为附加信息返回给应用程序的字符串)。如果要新建 grammar 文件,推荐使用 JSGF grammar 文件。 这里简要说明两种 grammar 文件 的规范,有关各 grammar 文件 规范的详细信息,请参阅以下网页:
- JSpeech Grammar Format: https://www.w3.org/TR/jsgf/
- Speech Recognition Grammar Specification Version 1.0: https://www.w3.org/TR/speech-grammar/
JSGF Grammar 文件 简易规范
JSGF grammar 文件 由以下元素组成:
Header 信息
描述字符编码信息和国家/语言信息。"header 信息"的格式如下:
#JSGF V1.0;
#JSGF V1.0 <字符编码信息>;
#JSGF V1.0 <字符编码信息> <国家/语言信息>;
字符编码信息和国家/语言信息可以省略。
例:
#JSGF V1.0;
#JSGF V1.0 MS932;
#JSGF V1.0 MS932 ja-JP;
#JSGF V1.0 UTF-8;
Grammar 语句
描述 grammar 名称。"grammar 语句"的格式如下:
grammar 【grammar 名称】;
Grammar 名称应指定去除路径部分和扩展名部分后的 grammar 文件 名。
例:
grammar Sample;
Rule 定义语句
描述实际希望语音识别引擎识别的短语和标签的定义。一个 grammar 文件 中可以描述多个 rule 定义语句。 Rule 分为 public rule 和 private rule 两种。Public rule 单独规定希望语音识别引擎识别的短语或标签。Private rule 被其他 rule 引用。 Public rule 的"rule 定义语句"格式如下:
public <【rule 名】> = 【rule 定义】;
Private rule 的" rule 定义语句"格式如下:
<【rule 名】> = 【rule 定义】;
关于 rule 定义,请参阅rule 定义。
例:
public <sample1> = 早上好 <sample2>;
<sample2> = AmiVoice\あみぼいす;
Rule 定义
Rule 定义由以下元素组成:
单词
描述希望语音识别引擎识别的单词。单词可以串行或并行描述。单词的"显示"和"读音"用\(反斜杠)分隔。对于一个"显示"有多个"读音"时,各读音用/(斜杠)分隔。格式如下:
| 符号 | 说明 |
|---|---|
( ) | 表示"集合化" |
| | 表示"并行" |
\ | 表示显示和读音的分隔符 |
/ | 表示读音的分隔符 |
串行示例:
・・・ AmiVoice\あみぼいす/あみ 语音识别\おんせいにんしき 引擎 ・・・