2

有没有办法将数字打印成正确的拼写而不是在通过录音时抛出数字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”,但数字格式化程序返回“一千二百三十四”。

我的目标是如果用户说出任何数字,语音识别器应该逐字返回相同的数字。如果用户说“五十五点零”,它应该返回“五十五点零”。如果用户说“一二三四”,它应该返回“一二三四”。

4

0 回答 0