我正在尝试将选项添加到我的应用中,以在使用Apple的Vision框架识别文本时允许使用不同的语言。
似乎有a function用于以编程方式返回受支持的语言,但是我不确定是否正确调用了它,因为我只会得到“ en-US”,而我是相当 确定不是唯一受支持的语言吗?
这是我目前拥有的:
// current revision number of Vision
let revision = VNRecognizeTextRequest.currentRevision
var possibleLanguages: Array<String> = []
do {
possibleLanguages = try VNRecognizeTextRequest.supportedRecognitionLanguages(for: .accurate, revision: revision)
} catch {
print("Error getting the supported languages.")
}
print("Possible languages for revision \(revision):\n\(possibleLanguages.joined(separator: "\n"))")
任何帮助将不胜感激,谢谢。
答案 0 :(得分:4)
您可以使用recognitionLanguages
实例属性轻松地告诉Vision框架文本识别需要哪种语言:
var recognitionLanguages: [String] { get set }
recognitionLanguages
是数组中语言的顺序,定义了在语言处理和文本识别期间使用语言的顺序。将语言指定为ISO language codes。
因此您的真实代码可能如下所示:
import Vision
let recognizeTextRequest = VNRecognizeTextRequest()
recognizeTextRequest.minimumTextHeight = 0.05
recognizeTextRequest.recognitionLanguages = ["en-US", "ca-ES", "ru-RU", "fr-CA"]
PS
但是目前(2020年3月12日),Vision框架仅支持英语。让我们等待下一版本的Vision,它将支持其他语言。
答案 1 :(得分:2)
从iOS14开始,VNRecognizeTextRequestRevision2以准确的识别级别支持英语,中文,葡萄牙语,法语,意大利语,德语和西班牙语。快速识别级别支持英语,葡萄牙语,法语,意大利语,德语和西班牙语。
您可以使用以下代码段在Playground中签入:
try VNRecognizeTextRequest.supportedRecognitionLanguages(for: .fast, revision: 2)