如下代码:

AVSpeechSynthesizer * speechSynthesizer = [[AVSpeechSynthesizer alloc] init];
AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString: @"112"];
utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-GB"];
speechSynthesizer  speakUtterance:utterance];

导致设备显示:“一百十二”(英国拼写)

但是,如果您改写数字112:
NSString * wordNumber = nil;
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en-GB"]];
[numberFormatter setNumberStyle:NSNumberFormatterSpellOutStyle];
wordNumber = [numberFormatter stringFromNumber:@(112)];

现在wordNumber包含“一百一十二”(不包含和粒子)。

所以:
@"112" -> AVSpeechSynthesizer -> "one hundred and twelve"
@"112" -> NSNumberFormatter   -> "one hundred twelve"

如何用粒子(即英式拼写)对数字进行音译?

最佳答案

我相信您需要自己做。我无法产生您想要的结果或找到任何允许我这样做的资源。

我已链接到一个演示如何手动执行此操作的问题。

Is it possible to spell out numbers in words with a separator?

关于ios - NSNumberFormatter:用AND粒子拼出一个数字(英语拼写),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22921173/

10-13 04:01