有没有办法将数字打印成正确的拼写而不是在通过录音时抛出数字SFSpeechRecognizer
?我试图通过实现以下代码来获取单词格式:
if let resultString = result?.bestTranscription.formattedString {
if let number = Double(resultString) {
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .spellOut
let numberString = numberFormatter.string(from: NSNumber(value: number))
let numberStringWithoutHyphen = numberString?.replacingOccurrences(of: "-", with: " ")
print(numberStringWithoutHyphen)
}
}
如果用户说的是整数甚至十进制数,则此解决方案效果很好,但在某些情况下,此解决方案根本不起作用并使此解决方案看起来很愚蠢。例如,如果用户说“五十五点零”,语音识别器会将其识别为“55.0”。但是数字格式化程序返回“五十五”。在极端情况下,如果用户说“一二三四”,语音识别器将其识别为“1234”,但数字格式化程序返回“一千二百三十四”。
我的目标是如果用户说出任何数字,语音识别器应该逐字返回相同的数字。如果用户说“五十五点零”,它应该返回“五十五点零”。如果用户说“一二三四”,它应该返回“一二三四”。