2016-11-19 43 views
0

說明使用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}; 

回答

1

的最聰明的解決方案是識別文本條首先。語法不應該是複雜的,它應該只是列出的數字中使用的詞彙:

grammar number; 

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 | and)*; 

一旦文本被認可,將其轉換爲數字。詳情請查詢How to convert words to a number?

+0

尼古拉我已經完成了第二部分轉換單詞的數字或數字的話。我遇到的問題是,語法文件只能識別我寫的數字....「(一個|兩個|三個|四個|五個|六個|七個|八個|九個|十一個|十三個|十三個|十四個|十五|十六|十七|​​十八|十九|二十)',我想讓它識別每一個數字...因爲我不能用'語法模型'任何特殊字詞'',我可以使用'語法文件'? – GOXR3PLUS

+0

沒有特別的詞。 –

+0

那麼有沒有辦法使用語法來識別所有數字(字符串格式)? :)只有我想要的,沒有更多,我可以做其他的東西。 – GOXR3PLUS

相關問題