看到外文菜单、路牌、手册看不懂?
拍张照,自动识别文字、翻译、读出来——这才叫 AI!

本篇带你构建一个鸿蒙图文翻译助手,整合:

✅ OCR 提取图片中文字
✅ 文本翻译(本地或接口)
✅ 语音播报译文(多语种 TTS)
✅ 支持图片选择 + 结果展示 + 多语言切换


✅ 技术模块(HarmonyOS 5+)

功能模块
图像 OCR@ohos.ai.cv.text
翻译 API自建翻译表 / 第三方接口(如百度翻译)
多语言 TTS 播报@ohos.ai.tts
图像加载/选择ArkTS 文件系统 + UI 控件

🎯 目标场景

  • 拍下英文菜单 → 翻译成中文并语音播报
  • 拍摄韩文/日文路标 → 识别 → 翻译 → 听译文
  • 识别中文图文 → 翻成英文朗读给外国朋友听
  • 学习辅助工具:拍书学习外文、跟读训练等

📦 Step1:OCR 识别图像中文字

import text from '@ohos.ai.cv.text'

let ocrClient: text.TextDetector

async function initOCR() {
  ocrClient = await text.createTextDetector()
}

async function extractTextFromImage(path: string): Promise<string> {
  const result = await ocrClient.detectText(path)
  return result.map(r => r.text).join('\n')
}

📦 Step2:翻译文本(简易词典 or API)

本地词典版示例:

function translateText(text: string, targetLang: string): string {
  const dict: Record<string, string> = {
    'Hello': '你好',
    'Coffee': '咖啡',
    'Open': '打开',
    'Close': '关闭'
  }

  return text
    .split(/\s+/)
    .map(word => dict[word] ?? word)
    .join(' ')
}

⚠️ 若接入在线翻译 API(如百度/腾讯翻译),需调用 HTTPS 接口并传入 appId、key。


📦 Step3:TTS 语音播报译文

import tts from '@ohos.ai.tts'
import media from '@ohos.multimedia.media'

async function speak(text: string, lang: string) {
  const client = await tts.createTTSClient()
  await client.setLanguage(lang) // 如 'en'、'zh'、'ja'

  const path = `/data/user/tts_${Date.now()}.wav`
  await client.synthesizeToFile(text, path)

  const player = await media.createAVPlayer()
  await player.setSource({ uri: path, mediaType: media.MediaType.AUDIO })
  await player.prepare()
  await player.play()
}

📦 Step4:UI 整合组件

@Entry
@Component
struct OCRTranslate {
  @State imgPath: string = '/data/media/sample_en.jpg'
  @State srcText: string = ''
  @State dstText: string = ''
  @State loading: boolean = false

  async process() {
    this.loading = true
    await initOCR()
    this.srcText = await extractTextFromImage(this.imgPath)
    this.dstText = translateText(this.srcText, 'zh')
    await speak(this.dstText, 'zh')
    this.loading = false
  }

  build() {
    Column({ space: 16 }) {
      Image(this.imgPath).width('100%').height(240)
      Button(this.loading ? '翻译中…' : '识图翻译并播报')
        .onClick(() => this.process())

      Text('原文:').fontSize(16)
      Text(this.srcText).fontSize(14).lineHeight(22)

      Text('译文:').fontSize(16).margin({ top: 10 })
      Text(this.dstText).fontSize(14).lineHeight(22)
    }
    .padding(20)
  }
}

✅ 拓展能力建议

功能方向实现方式
多语言支持setLanguage('en') / 'ja' / 'ko'
接入翻译接口百度翻译 / 腾讯翻译 API
拍照识图结合摄像头模块,实时拍照送入识别流程
翻译历史记录保存每次识别结果 + 时间到 JSON 文件
教学/辅助训练结合 TTS 输出与分词展示 → 实现背词训练工具

⚠️ 注意事项(HarmonyOS 5.0.0+)

  • OCR 准确度依赖图像清晰度,建议使用高清扫描或拍照
  • TTS 多语言合成需设备支持相应语言模型(部分可能不支持如“韩语”)
  • 在线翻译接口如需用 HTTPS,需配置网络权限并处理响应延迟
  • 本地词典翻译仅适用于固定词汇,复杂语义需 NLP 接入

🧩 小结

你已完成构建一套 AI 图文翻译助手:

  • OCR 识别图像中文字
  • 翻译为目标语言(本地或 API)
  • TTS 播报译文支持语音辅助
  • 可用于外语场景辅助、无障碍辅助、教育翻译等领域

📘 下一篇预告

第18篇:AI 智能问答助手:构建鸿蒙设备本地对话问答系统(知识+指令双融合)

我们将结合嵌入式问答模型 + 本地 TTS + UI 组件,实现语音输入 → 文字识别 → 本地问答返回并播报。

更多推荐