在 Apple 的 Vision 框架中,我如何判断哪些语言可用于文本识别?
Posted
技术标签:
【中文标题】在 Apple 的 Vision 框架中,我如何判断哪些语言可用于文本识别?【英文标题】:How can I tell which languages are available for text recognition in Apple's Vision framework? 【发布时间】:2020-02-01 19:27:10 【问题描述】:我正在尝试向我的应用添加选项,以便在使用 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"))")
任何帮助将不胜感激,谢谢。
【问题讨论】:
我认为必须在设备设置中添加语言。在什么设备上运行它?该设备的设置中是否仅设置了英语? 谢谢,我喜欢这个想法,但我使用的是仅限 en-GB 的设备。刚刚尝试在我的设备中添加俄语,但它仍然只显示 en-US。 @mralexhay 你有没有找到任何解决方案。我还必须添加对其他语言的支持。 @Rashid 我还没有害怕。如果您找到解决方案,请告诉我,谢谢! 【参考方案1】:从 ios 14 开始,VNRecognizeTextRequestRevision2 在.accurate
识别级别支持英语、法语、意大利语、德语、西班牙语、葡萄牙语和中文(简体和繁体)。
["en-US", "fr-FR", "it-IT", "de-DE", "es-ES", "pt-BR", "zh-Hans", "zh-Hant"]
.fast
识别级别支持英语、法语、意大利语、德语、西班牙语和葡萄牙语。
["en-US", "fr-FR", "it-IT", "de-DE", "es-ES", "pt-BR"]
你可以用这个 sn-p 签入 Playground:
try VNRecognizeTextRequest.supportedRecognitionLanguages(for: .fast, revision: 2)
【讨论】:
【参考方案2】:iOS 15
在 iOS 15 中可以调用如下实例方法
func supportedRecognitionLanguages() throws -> [String]
返回请求支持的语言的标识符。
recognitionLanguages
属性
您可以使用 recognitionLanguages
实例属性轻松告诉 Vision 框架需要哪些语言进行文本识别:
var recognitionLanguages: [String] get set
根据Apple documentation:
recognitionLanguages
是数组中语言的顺序,定义了语言处理和文本识别过程中使用语言的顺序。将语言指定为ISO language codes。
所以你的真实代码可能是这样的:
import Vision
let recognizeTextRequest = VNRecognizeTextRequest()
recognizeTextRequest.minimumTextHeight = 0.05
recognizeTextRequest.recognitionLanguages = ["en-US", "ca-ES", "ru-RU", "fr-CA"]
附言
但目前(2020 年 3 月 12 日)Vision 框架仅支持英文。让我们等待下一个版本的 Vision 将支持其他语言。
【讨论】:
感谢您的回答,这就是我最终拥有的,但我仍然无法识别任何其他语言。我回去观看了关于它的 WWDC 视频,很快他们就说他们只支持第一个版本的 En-US。我相信他们会在 iOS14 中添加更多内容。 @mralexhay,你是对的,它目前只支持英文。以上是关于在 Apple 的 Vision 框架中,我如何判断哪些语言可用于文本识别?的主要内容,如果未能解决你的问题,请参考以下文章
Apple Vision – 条码检测不适用于不同颜色的条码