Как заставить iOS Speech API читать только цифры и распознавать "один" как "1"

Я хочу использовать iOS Speech API для распознавания математических выражений. Это работает хорошо для таких вещей, как two plus four times three - читает это как 2+4*3, но когда я начинаю выражение с 1, оно всегда читается как "Один". Когда "Один" находится в середине выражения, он работает как ожидалось.

Я понял, что когда я установил SFSpeechAudioBufferRecognitionRequest имущество taskHint в .search при отображении результатов в реальном времени он сначала распознает 1 как "1", но в конце меняет его на "Один"

Есть ли способ настроить его на распознавание только номеров? Или просто заставить читать "Один" как "1" всегда? Или единственный способ исправить это - отформатировать строку результата самостоятельно?

0 ответов

У меня та же проблема, но, похоже, нет способа ее настроить. Я пишу это расширение для своего кода, я проверяю каждый сегмент с этим.

extension String {

    var numericValue: NSNumber? {

        //init number formater
        let numberFormater = NumberFormatter()

        //check if string is numeric
        numberFormater.numberStyle = .decimal

        guard let number = numberFormater.number(from: self.lowercased()) else {

            //check if string is spelled number
            numberFormater.numberStyle = .spellOut

            //change language to spanish
            //numberFormater.locale = Locale(identifier: "es")

            return numberFormater.number(from: self.lowercased())
        }

        // return converted numeric value
        return number
    }
}

Например

{

    let numString = "1.5"
    let number = numString.numericValue //1.5
    // or 
    let numString = "Seven"
    let number = numString.numericValue //7

}
Другие вопросы по тегам