我正在使用iOS Speech API。从语音到文字的数学评估
我想在语音到文本框架的输出上做一些数学运算。
有几个问题。首先,用户可以说一些愚蠢的东西,所以我们必须检查它是字或数学表达式。所以我想,我们可以使用这样的:
if string.contains("×") || string.contains("+") || string.contains("-")
但它看起来可怕,如果用户举例说"+2"
什么..
然后我想,也许我们可以检查,如果输入数据类型为int,所以我想过这样的:
guard let stringResult = result?.bestTranscription.formattedString else {
return
}
let convertedNumber = Int(stringResult)
if let stringResult = convertedNumber {
print(stringResult)
print("Everything works Fine")
} else {
print("nope..")
}
,并不停地进行故障..
我tryed几个奇怪的方法来解决这个错误处理,但我不”没有其他的想法。
输入,作为一块的startRecording功能:
if result != nil {
guard let stringResult = result?.bestTranscription.formattedString else {
return
}
self.inputLabel.text = stringResult
并计算函数只是看起来完全错误:
private func calculate(string: String) {
if string.contains("×") || string.contains("+") || string.contains("-") {
let stringToCalculate = string.replacingOccurrences(of: "×", with: "*")
guard let finalScore = NSExpression(format: stringToCalculate).expressionValue(with: nil, context: nil) else { return }
outputLabel.text = String(describing: finalScore)
} else {
outputLabel.text = "Are you sure it's mathematical evaluation ?"
}
}
好输入实施例:7 + 7×2 - > 21
不好:“海盗喝朗姆酒!”或“海盗” - > outputLabel.text =“你确定这是数学评估?”
所以问题是我应该如何处理错误,以获知输入是数学评估,并对其进行数学计算,而不是单词/单词?
相关信息请参见https://stackoverflow.com/questions/44253194/parse-speech-output-to-a-json-to-call-application- API/44257741#44257741 –