You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为React Native中的Tesseract OCR添加乌尔都语识别支持

react-native-tesseract-ocr 乌尔都语识别无输出解决方案

核心原因

react-native-tesseract-ocr 仅内置了常用语言的常量定义,默认未打包乌尔都语对应的Tesseract训练数据,仅修改语言常量参数会因为加载不到训练文件导致无识别结果。

配置步骤

    1. 确认你当前使用的库依赖的Tesseract底层版本,下载对应版本的urd.traineddata训练文件
    1. 分平台放置训练文件:
    • Android端:在android/app/src/main/assets/目录下新建tessdata文件夹,将urd.traineddata放入该目录,打包时会自动打入apk资源包
    • iOS端:将urd.traineddata拖入Xcode项目的Resources目录,勾选「Copy items if needed」和你的应用target,确保文件会被编译进ipa资源目录
    1. 调整识别代码配置,参考示例如下:
import TesseractOcr, {
  LANG_URDU,
  useEventListener,
} from 'react-native-tesseract-ocr';

// 乌尔都语识别调用方法
const recognizeUrdu = async (imageUri) => {
  const config = {
    lang: LANG_URDU,
    pageSegMode: 6, // 适配单块统一文本场景,印刷类内容识别准确率更高
    allowlist: undefined, // 禁止设置英文白名单,避免乌尔都语字符被过滤
  };
  try {
    const textResult = await TesseractOcr.recognize(imageUri, config);
    return textResult;
  } catch (e) {
    console.error('识别错误:', e);
  }
};

异常排查

  • 确认训练文件名称完全为urd.traineddata,拼写错误、大小写错误都会导致加载失败
  • 打包后验证训练文件是否存在于安装包的对应资源目录
  • 识别前对图片做预处理:调整对比度、摆正文字方向,乌尔都语为从右到左书写的文字,图片旋转会大幅降低识别率
  • 纯乌尔都语识别不要传入多语言参数,避免识别优先级冲突导致无结果

内容的提问来源于stack exchange,提问作者Bilal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 08:54:03