How can I get OpenEars to recognize spoken numbers on iOS?
Asked Answered
E

2

7

I'm looking for API to convert spoken items into text on iOS, but mainly for numbers and letters like 1, 2, 3, 4 and a, b, c, d.

I've tried OpenEars as many people suggested, but it appears to only support certain ords, such as "GO FORWARD BACKWARD LEFT RIGHT START STOP TURN". Can it be used to recognize generic words or spoken numbers?

I have also tried the iSpeech API, but when I speak a string of numbers like 12345, it can only return the text "one two three four five", and it can only give me the result of the recognition instead of a list of guesses (like the Google voice recognition API on Android).

How can I use either of these APIs (or another alternative) to recognize spoken numbers or letters?

Elvaelvah answered 29/9, 2011 at 21:12 Comment(5)
did you manage to resolve it?Frizette
no I used another API instead, sorry forget to update here. Thanks though!Elvaelvah
@Luvina, can you share which Api did you used? Thanks.Plante
@kforkarim, did you found anything?Frizette
Can you share with us Luvina which API you ended up using?Demonic
S
7

To learn how to create custom language models and how to dynamically create language models with OpenEars (a language model is your custom set of words), read the OpenEars docs here:

http://www.politepix.com/openears/yourapp

To learn how to use an acoustic model with OpenEars which is oriented towards recognizing spoken digits, read this discussion in the OpenEars forum:

http://www.politepix.com/forums/topic/way-to-see-phonemes-openears-heard

You can also look at the code in the OpenEars sample app, which is heavily commented and shows an example of changing the apps "vocabulary" inline. If you have more questions about implementing OpenEars, I recommend making an account on the OpenEars forums (I'm the OpenEars developer).

Seamark answered 30/9, 2011 at 19:4 Comment(0)
C
-1

I used the following JSGF based on the sphinx unit tests.

<int0> = (ZERO | OH);
<int10> = TEN;
<int100> = HUNDRED;
<int1to9> = ONE | TWO | THREE | FOUR | FIVE | SIX | SEVEN | EIGHT | NINE;
<int0to9> = ( <int0> | <int1to9> );
<int01to09> = <int0> <int1to9>;
<int11to19> = ELEVEN | TWELVE | THIRTEEN | FOURTEEN | FIFTEEN | SIXTEEN | SEVENTEEN | EIGHTEEN | NINETEEN;
<tens> = TWENTY | THIRTY | FORTY | FIFTY | SIXTY | SEVENTY | EIGHTY | NINETY;
<int20to99> = ( <tens> [<int1to9>] );
<int10to99> = ( <int10> | <int11to19> | <int20to99> );
<int1to99> = ( <int1to9> | <int10to99> );
<int0to99> = ( <int0> | <int1to99> );
<int01to99> = ( <int01to09> | <int10to99> );
<int1to9hundreds> = ((A  | <int1to9>) <int100>);
<int101to999> = (<int1to9> (<int01to09> | <int10> | <int11to19> | <int20to99> ));
<int100to999> = (<int1to9hundreds> [[AND] <int1to99> ]);
<int1to999> = ( <int1to99> | <int100to999> | <int101to999> );
Colossus answered 4/1, 2016 at 20:21 Comment(1)
It's generally best to give some description about your answer - rather than just leave a block of codePatricio

© 2022 - 2024 — McMap. All rights reserved.