如何在 java 中使用 sphinx 和 freetts 管理 hello.gram 对话

how to manage hello.gram for conversation using sphinx and freetts in java

我正在 java.

中使用 sphinx(语音转文本)和 FreeTTS(文本转语音)开发基于语音的小型交互工具

例如:FreeTTS 发出类似姓名的语音命令:用户将回复他的姓名和年龄,place.everything 是静态的。

如何在 sphinx 中写 hello.gram 来实现这个

public<greet>=[<name>] [<age>] [<place>];
<name> = john | max;
<age> = ten | nine ;
<place> = France | Spain;

语音命令:你叫什么名字 我的回复:Max

观察:最多 10 个

语音命令:您的年龄 我的回复:九

观察:九个法国

当我说 name.its 时断断续续的时候,我只想看到名字 :(

提前致谢。

根据亚历山大的回答修改。

没有神奇的方法来做你想做的事。您必须指定要在语法中识别的所有短语。我唯一可以推荐的是分解一些规则,例如号码:

<位数> = 一 |两个 |三 |四;
<十年> = 二十 |三十|四十;
= <十年> | <十年> <位数> ;

您可以使用下面的代码来避免它。

public <name> = john | max;
public <age> = ten | nine ;
public <place> = France | Spain;