8

以下代码:

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

结果设备显示:“ 112”(英拼写)

但是,如果您转写数字 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"

如何用and小词转写一个数字,即英式拼写?

4

2 回答 2

1

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

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

是否可以用分隔符拼出单词中的数字?

于 2014-05-03T03:15:04.187 回答
0

呵呵,你就不能这样吗?

AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:@"112"];
utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-GB"];
NSString *transliteration = utterance.speechString;
于 2014-05-03T04:30:23.113 回答