Как заставить 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
}