說明使用Sphinx4 library存在於Java的讓Sphinx4認識到使用自定義的文件.gram
語音識別計算器的所有號碼。
在github的完整代碼:here
我使用的克文件是以下(on github):
#JSGF V1.0;
/**
* JSGF Grammar
*/
grammar grammar;
public <syntax> = (one | two | three| four| five | six | seven | eight | nine | ten | eleven | twelve | thirteen | fourteen | fifteen | sixteen | seventeen | eighteen | nineteen | twenty)
(plus | minus | multiply | division)
(one | two | three| four| five | six | seven | eight | nine | ten | eleven | twelve | thirteen | fourteen | fifteen | sixteen | seventeen | eighteen | nineteen | twenty);
問題:
I want the program to be able to recognize numbers from 0 to 1 million in English Language
。
在當前狀態下,您可以看到它可以識別號碼(one | two | three| four| five | six | seven | eight | nine | ten | eleven | twelve | thirteen | fourteen | fifteen | sixteen | seventeen | eighteen | nineteen | twenty)
,因爲我已將它們手動寫入gram file
。
我的意思是我必須手動將它們全部寫入gram file
(我可以創建一個程序來生成該文件),但似乎不可能(某些模式可能存在),該文件將會太多千兆字節。
最後:
有任何聰明的解決方案感謝您的努力:)
後新的語法Nikolay
解決方案是:
public <number> = (one | two | three | four | five | six | seven | nine | ten
| eleven | twelve | thirteen | fourteen | fifteen | sixteen | seventeen | eighteen | nineteen | twenty
| thirty | forty | fifty | sixty | seventy | eighty | ninety | hundred | thousand | million | billion)+;
public <syntax> = <number>{1} (plus | minus | multiply | division){1} <number>{1};
尼古拉我已經完成了第二部分轉換單詞的數字或數字的話。我遇到的問題是,語法文件只能識別我寫的數字....「(一個|兩個|三個|四個|五個|六個|七個|八個|九個|十一個|十三個|十三個|十四個|十五|十六|十七|十八|十九|二十)',我想讓它識別每一個數字...因爲我不能用'語法模型'任何特殊字詞'',我可以使用'語法文件'? –
GOXR3PLUS
沒有特別的詞。 –
那麼有沒有辦法使用語法來識別所有數字(字符串格式)? :)只有我想要的,沒有更多,我可以做其他的東西。 – GOXR3PLUS