gpt4 book ai didi

grammar - 一个 JSGF 文件是否只使用一个公共(public)规则?

转载 作者:行者123 更新时间:2023-12-02 01:34:00 26 4
gpt4 key购买 nike

我将以下 JSGF 文件与 pocketsphinx 一起使用(抱歉,法语):

#JSGF V1.0;
/**
* JSGF Grammar for music
*/
grammar music;

<launch_app> = lance | ouvre;
<launch_radio> = commence | débute | démarre;
<launch_artist> = met (du) | joue;

<app_list> = spotify | youtube | soundcloud | deezer;
<radio_list> = rock | folk | pop | classique | métal | triste | joyeuse | détendu;
<artist_list> = moby | lori | kyo | shakira | pantera | mozart;

<name> = music;

<radio_command> = <name> <launch_radio> une radio <radio_list>;
<app_command> = <name> <launch_app> <app_list>;
<artist_command> = <name> <launch_artist> <artist_list>;

public <final_rule> = <radio_command> | <app_command> | <artist_command>;

而且效果很好。但是如果我删除 <final_rule>标记并使用多个 public关键字,像这样:

#JSGF V1.0;
/**
* JSGF Grammar for music
*/
grammar music;

<launch_app> = lance | ouvre;
<launch_radio> = commence | débute | démarre;
<launch_artist> = met (du) | joue;

<app_list> = spotify | youtube | soundcloud | deezer;
<radio_list> = rock | folk | pop | classique | métal | triste | joyeuse | détendu;
<artist_list> = moby | lori | kyo | shakira | pantera | mozart;

<name> = music;

public <radio_command> = <name> <launch_radio> une radio <radio_list>;
public <app_command> = <name> <launch_app> <app_list>;
public <artist_command> = <name> <launch_artist> <artist_list>;

无论我说什么,pocketsphinx 只承认三个公共(public)规则之一。我觉得这种行为很奇怪,因为 pocketsphinx 在运行这个语法文件时不会给我错误。一个 JSGF 文件只需要一个公共(public)关键字还是它链接到 pocketshphinx?

最佳答案

是的,pocketsphinx 默认只识别第一条规则。如果要使用其他规则,config中有-toprule参数或者API中有name参数。

如果你想识别多个选择,你可以构造语法,将最终规则构造为你需要的所有规则的选择:

 public <command> = <artist> | <music> | <action> ;

关于grammar - 一个 JSGF 文件是否只使用一个公共(public)规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32251289/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com