news 2026/2/26 5:21:06

Paraformer-large识别结果导出:TXT/JSON格式生成实战教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Paraformer-large识别结果导出:TXT/JSON格式生成实战教程

Paraformer-large识别结果导出:TXT/JSON格式生成实战教程

1. 教程目标与适用人群

你是不是也遇到过这种情况:用语音识别工具转写了一段很长的会议录音或课程音频,结果只能在网页界面上看文字,没法保存下来做进一步整理?复制粘贴太麻烦,还容易丢内容。

本文要解决的就是这个问题——如何将 Paraformer-large 模型识别出的文字结果,自动保存为 TXT 和 JSON 文件,方便后续归档、分析或导入其他系统使用。

适合谁看:

  • 正在使用 Paraformer-large 做语音转写的用户
  • 想要把识别结果结构化保存的技术爱好者
  • 需要批量处理录音文件的办公人员、教育工作者、内容创作者

学完你能掌握:

  • 在原有 Gradio 界面基础上扩展“导出功能”
  • 实现一键生成.txt纯文本和.json结构化数据
  • 自定义文件命名规则与存储路径
  • 完整可运行代码,直接复制就能用

不需要你懂多深的编程,只要会改几行 Python 脚本,就能让整个流程自动化起来。

2. 功能升级思路:从展示到落地

目前默认的app.py只负责把识别结果显示在网页上。我们要做的,是在用户点击“开始转写”后,不仅显示结果,还能自动生成两个文件

  • output.txt:纯文本格式,适合直接阅读或导入 Word
  • output.json:包含完整信息(原始音频名、识别时间、文本内容等),便于程序调用

这样就实现了“识别 + 输出”的闭环,真正把 AI 工具变成生产力工具。

2.1 新增功能点拆解

功能模块实现方式
文件命名根据上传音频名生成对应 txt/json 文件
文本写入使用 Python 内置open()函数写入 txt
结构化输出构造字典对象并用json.dump()保存
下载链接Gradio 提供gr.File组件支持下载

我们不会改动模型本身,只是在推理完成后加几步“保存动作”,非常安全且易于维护。

3. 修改后的完整代码实现

下面是你需要替换掉原app.py的新版脚本。我已经加上了清晰注释,每一部分做什么都说清楚了。

# app.py - 支持结果导出的增强版 import gradio as gr from funasr import AutoModel import os import json from datetime import datetime # 加载模型 model_id = "iic/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-pytorch" model = AutoModel( model=model_id, model_revision="v2.0.4", device="cuda:0" ) # 定义保存目录 OUTPUT_DIR = "/root/workspace/output" os.makedirs(OUTPUT_DIR, exist_ok=True) def asr_process_with_export(audio_path): if audio_path is None: return "请先上传音频文件", None, None # 推理识别 res = model.generate(input=audio_path, batch_size_s=300) if len(res) > 0: text = res[0]['text'] else: return "识别失败,请检查音频格式", None, None # 获取音频文件名(不含路径) audio_filename = os.path.basename(audio_path) base_name = os.path.splitext(audio_filename)[0] # 生成时间戳 timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") # 构建输出文件名 txt_file = os.path.join(OUTPUT_DIR, f"{base_name}_transcript.txt") json_file = os.path.join(OUTPUT_DIR, f"{base_name}_result.json") # 写入 TXT 文件 with open(txt_file, 'w', encoding='utf-8') as f: f.write(text) # 写入 JSON 文件(带元信息) result_data = { "audio_file": audio_filename, "transcript": text, "duration_seconds": res[0].get("duration", "unknown"), "sample_rate": res[0].get("sample_rate", "16000"), "language": "zh-cn", "generated_at": timestamp } with open(json_file, 'w', encoding='utf-8') as f: json.dump(result_data, f, ensure_ascii=False, indent=2) # 返回识别结果 + 两个可下载的文件路径 return text, txt_file, json_file # 构建界面 with gr.Blocks(title="Paraformer 语音转文字控制台") as demo: gr.Markdown("# 🎤 Paraformer 离线语音识别转写") gr.Markdown("支持长音频上传,自动添加标点符号和端点检测,并可导出 TXT/JSON 文件。") with gr.Row(): with gr.Column(): audio_input = gr.Audio(type="filepath", label="上传音频或直接录音") submit_btn = gr.Button("开始转写", variant="primary") with gr.Column(): text_output = gr.Textbox(label="识别结果", lines=10) gr.Markdown("### 下载识别结果") txt_output = gr.File(label="TXT 文件下载") json_output = gr.File(label="JSON 文件下载") # 绑定按钮事件 submit_btn.click( fn=asr_process_with_export, inputs=audio_input, outputs=[text_output, txt_output, json_output] ) # 启动服务 demo.launch(server_name="0.0.0.0", server_port=6006)

3.1 关键修改说明

  • 新增 OUTPUT_DIR:所有导出文件统一放在/root/workspace/output目录下,避免混乱
  • 文件名智能生成:基于原音频名 +_transcript.txt/_result.json,防止覆盖
  • JSON 包含元数据:不只是文字,还包括时间、语言、音频信息,方便后期管理
  • Gradio File 组件:用户可以直接点击下载生成的文件

4. 如何部署与验证效果

4.1 替换脚本并重启服务

  1. 登录你的实例终端
  2. 编辑新脚本:
vim /root/workspace/app.py
  1. 粘贴上面的完整代码,保存退出(:wq
  2. 确保 output 目录存在:
mkdir -p /root/workspace/output
  1. 启动服务:
source /opt/miniconda3/bin/activate torch25 && cd /root/workspace && python app.py

4.2 测试流程演示

  1. 打开本地浏览器访问http://127.0.0.1:6006

  2. 上传一个.wav.mp3音频文件(建议先用小文件测试)

  3. 点击“开始转写”

  4. 等待几秒后:

    • 文字出现在上方文本框
    • 下方出现两个可下载按钮:“TXT 文件下载”和“JSON 文件下载”
  5. 分别点击下载,查看内容是否正确

示例输出文件内容

meeting_01_transcript.txt

今天召开了项目进度会议,主要讨论了下一阶段的功能开发安排。前端团队将在下周完成登录模块重构,后端预计周三前提供新的 API 接口文档。

meeting_01_result.json

{ "audio_file": "meeting_01.wav", "transcript": "今天召开了项目进度会议...", "duration_seconds": 187.5, "sample_rate": "16000", "language": "zh-cn", "generated_at": "20250405_142310" }

5. 进阶技巧与实用建议

5.1 批量处理多个音频文件?

虽然 Gradio 是单文件交互式界面,但你可以写个批处理脚本,在后台自动跑一堆音频。

示例脚本batch_asr.py

import os from funasr import AutoModel model = AutoModel(model="iic/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-pytorch") audio_dir = "/root/workspace/audio_files" output_dir = "/root/workspace/batch_output" for file in os.listdir(audio_dir): if file.endswith(('.wav', '.mp3')): path = os.path.join(audio_dir, file) res = model.generate(input=path) text = res[0]['text'] if res else "" with open(os.path.join(output_dir, f"{os.path.splitext(file)[0]}.txt"), 'w') as f: f.write(text)

5.2 如何让导出更规范?

可以加入这些优化:

  • 文件名中加入日期前缀:20250405_meeting_summary.txt
  • 设置最大文件数量限制,定期清理旧文件
  • 添加语音时长过滤,跳过太短的无效录音

5.3 注意事项提醒

  • 磁盘空间:长时间录音转写会产生大量文本,记得定期清理/output目录
  • 编码问题:务必使用encoding='utf-8',否则中文可能乱码
  • 路径权限:确保/root/workspace/output有写入权限,否则会报错
  • GPU 利用率:4090D 上识别速度很快,但如果并发太多请求可能会卡顿

6. 总结:让语音识别真正为你所用

通过这篇教程,你应该已经成功把一个“只能看”的语音识别工具,变成了一个“能存、能用、能集成”的实用系统。

核心收获回顾:

  • 学会了如何在 Paraformer-large 的 Gradio 界面中增加文件导出功能
  • 掌握了 TXT 和 JSON 两种主流格式的生成方法
  • 理解了如何组织输出结构,便于后期管理和程序调用
  • 获得了可直接运行的完整代码模板

现在你可以:

  • 把会议录音自动转成纪要文档
  • 将课程音频转为学习笔记
  • 批量处理客户访谈并归档
  • 搭建自己的语音资料库

这才是 AI 工具该有的样子——不只是炫技,而是实实在在帮你省时间、提效率。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/8 0:59:52

Cogito v2预览:109B MoE大模型让AI学会深度思考

Cogito v2预览:109B MoE大模型让AI学会深度思考 【免费下载链接】cogito-v2-preview-llama-109B-MoE 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/cogito-v2-preview-llama-109B-MoE 导语:Deep Cogito推出1090亿参数混合专家模型&…

作者头像 李华
网站建设 2026/2/24 13:04:20

远程面试评估系统:候选人情绪稳定性AI分析实战

远程面试评估系统:候选人情绪稳定性AI分析实战 在远程招聘日益普及的今天,企业对候选人综合能力的评估不再局限于简历和语言表达。如何在不见面的情况下,更全面地了解一个人的心理素质、沟通风格和临场反应?传统视频面试虽然解决…

作者头像 李华
网站建设 2026/2/17 6:27:22

Qwen3-VL-8B-Thinking:AI视觉交互与推理全面进化

Qwen3-VL-8B-Thinking:AI视觉交互与推理全面进化 【免费下载链接】Qwen3-VL-8B-Thinking 项目地址: https://ai.gitcode.com/hf_mirrors/Qwen/Qwen3-VL-8B-Thinking 导语:Qwen3-VL-8B-Thinking作为Qwen系列最新视觉语言模型,通过架构…

作者头像 李华
网站建设 2026/2/25 19:33:57

CogVLM2开源:16G显存体验超高清图文对话黑科技

CogVLM2开源:16G显存体验超高清图文对话黑科技 【免费下载链接】cogvlm2-llama3-chat-19B-int4 项目地址: https://ai.gitcode.com/zai-org/cogvlm2-llama3-chat-19B-int4 导语:清华大学知识工程实验室(KEG)与智谱AI联合团…

作者头像 李华
网站建设 2026/2/19 23:05:36

Qwen3-14B实战案例:128K长文本处理部署详细步骤

Qwen3-14B实战案例:128K长文本处理部署详细步骤 1. 引言:为什么选择Qwen3-14B做长文本处理? 你有没有遇到过这样的场景:手头有一份几十万字的合同、技术白皮书或小说草稿,想让AI帮你总结、分析甚至续写,但…

作者头像 李华
网站建设 2026/2/25 14:37:48

AI智能体提示词优化:从理论到实践的全方位指南

AI智能体提示词优化:从理论到实践的全方位指南 【免费下载链接】agent-lightning The absolute trainer to light up AI agents. 项目地址: https://gitcode.com/GitHub_Trending/ag/agent-lightning 在当今人工智能快速发展的浪潮中,AI智能体的性…

作者头像 李华