3

I'm using OpenEars to detect numbers spoken by the user and transcribed into text. My goal is to transform the spelled out number into an NSNumber instance.

I have followed the advice of Rob in here to do that. So i'm using NSNumberFormatter and setting the numberStyle to NSNumberFormatterSpellOutStyle before I call numberFromString.

Here's what my NSNumberFormatter initialization code looks like.

    _numberFormatter = [[NSNumberFormatter alloc] init];
    [_numberFormatter setLocale:[NSLocale currentLocale]];
    [_numberFormatter setNumberStyle:NSNumberFormatterSpellOutStyle];
    [_numberFormatter setMaximumFractionDigits:2];
    [_numberFormatter setMinimumFractionDigits:2];

and then I'm NSLogging the result of numberFromString for a series of examples (just for testing)

First:

NSLog(@"%@", [formatter numberFromString:@"eleven point three"]);
NSLog(@"%@", [formatter numberFromString:@"three point eleven"]);
NSLog(@"%@", [formatter numberFromString:@"three point one one"]);

and the results:

11.3
(null)
3.11

Second:

NSLog(@"%@", [formatter numberFromString:@"thirty-four"]);
NSLog(@"%@", [formatter numberFromString:@"thirty four"]);

and the results:

34
3004

Third:

NSLog(@"%@", [formatter numberFromString:@"three point one one"]);
NSLog(@"%@", [formatter numberFromString:@"one one point three"]);

and the results:

3.11
101.3

NSNumberFormatter seems to dislike anything other than single digits as decimals. It also seems to have a very strict set of rules when it comes to double digit numbers having to be separated by hyphens. And for the 3rd example it's just a mess...

Are these known limitations of NSNumberFormatter and would you have any suggestions as to overcoming this?

Are there any other limitations that I haven't encountered yet?

Many thanks for all input.

Community
  • 1
  • 1
static0886
  • 784
  • 9
  • 25

0 Answers0