构建语音笔记 App:录音 + AI 实时转文字 + 智能分类标签(HarmonyOS 5.0.0+)

适配 HarmonyOS 5.0.0 或以上版本

 

“写笔记太慢?说出来就能生成整理好的文字。”

本篇将带你构建一个实用型 AI 应用——语音笔记 App,整合语音识别、文件存储与自动分类能力,核心功能包括:

✅ 语音录入 → 实时转文字
✅ 自动保存为笔记文件(JSON/TXT)
✅ 支持关键词识别与智能分类
✅ 可扩展为搜索、TTS 播报、标签聚合等功能


✅ 模块概览(HarmonyOS 5+)

能力模块模块名是否支持
语音识别(ASR)@ohos.ai.asr✅ 是
文件写入 / 读取@ohos.file.fs✅ 是
本地存储(分类/索引)JSON 文件 / SQLite / 存储服务✅ 可选

🎯 应用结构示意

[语音输入] → [ASR 实时识别] → [文字结果]
                             ↘
                        [关键词分类] → [写入文件]

📦 Step1:初始化语音识别模块

import asr from '@ohos.ai.asr'

let asrClient: asr.ASRClient
let noteText: string = ''

async function initASR() {
  asrClient = await asr.createASRClient()

  asrClient.on('recognitionResult', res => {
    noteText += res.text
  })

  asrClient.on('error', err => {
    console.error('识别错误:', err)
  })
}

📦 Step2:开始 / 停止识别控制

async function startNote() {
  noteText = ''
  await asrClient.start({
    language: 'zh',
    audioFormat: asr.AudioFormat.PCM_16K
  })
}

async function stopNote() {
  await asrClient.stop()
  return noteText
}

📦 Step3:关键词识别 + 自动分类(可扩展为 NLP)

function classifyNote(text: string): string {
  const mapping = {
    学习: '学习',
    工作: '工作',
    生活: '生活',
    购物: '清单',
    计划: '日程'
  }

  for (const key in mapping) {
    if (text.includes(key)) return mapping[key]
  }
  return '未分类'
}

📦 Step4:写入本地文件(JSON 格式)

import fs from '@ohos.file.fs'

async function saveNoteToFile(content: string) {
  const category = classifyNote(content)
  const filename = `/data/user/notes/${category}_${Date.now()}.json`

  const noteData = {
    content,
    time: new Date().toISOString(),
    category
  }

  await fs.writeText(filename, JSON.stringify(noteData))
}

📦 Step5:简易组件 UI 示例

@Entry
@Component
struct VoiceNoteApp {
  @State isRecording: boolean = false
  @State resultText: string = ''

  async toggle() {
    if (!asrClient) await initASR()

    if (!this.isRecording) {
      await startNote()
    } else {
      const text = await stopNote()
      this.resultText = text
      await saveNoteToFile(text)
    }

    this.isRecording = !this.isRecording
  }

  build() {
    Column({ space: 20 }) {
      Button(this.isRecording ? '停止录音' : '开始录音')
        .onClick(() => this.toggle())

      Text('识别结果:').fontSize(18)
      Text(this.resultText).fontSize(16).lineHeight(24)
    }
    .padding(20)
  }
}

✅ 拓展功能建议

功能模块建议做法
笔记搜索 / 列表展示本地读取 JSON 文件并分页渲染
TTS 播报配合前文 TTS 模块实现文字转语音朗读
多标签聚合增加关键词标签列表 + 按标签分类展示
离线语音识别模型接入可接入自定义命令型语音模型作为识别前置
上传同步 / 云笔记系统集成文件上传接口或云函数 API

🧩 小结

你已完成构建一个本地 AI 驱动的语音笔记 App:

  • 语音实时识别 + 文字回显

  • 内容智能分类 + 文件保存

  • 无需网络 + 可复用扩展能力强

  • 可用于学生记忆、会议纪要、生活记录等场景

这是语音能力产品化落地的典范,也为后续“AI 助手/秘书/录音整理”等系统打下基础。


📘 下一篇预告

第11篇:拍照 + 识图 + 播报——构建视障辅助识别系统

我们将融合图像识别 + 语音合成模块,构建一个帮用户“看见并听见”的辅助工具:拍照后识别图片内容,并自动播报给用户听。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值