【问题标题】:How can I tell which languages are available for text recognition in Apple's Vision framework?在 Apple 的 Vision 框架中,我如何判断哪些语言可用于文本识别?
【发布时间】: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 我还没有害怕。如果您找到解决方案,请告诉我,谢谢!

标签: swift machine-learning augmented-reality coreml apple-vision


【解决方案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,你是对的,它目前只支持英文。
    猜你喜欢
    • 2020-07-06
    • 2018-02-08
    • 2021-04-06
    • 2010-10-15
    • 2017-11-17
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    相关资源
    最近更新 更多