news 2026/4/16 14:11:03

如何导出Fun-ASR识别结果?CSV/JSON格式教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何导出Fun-ASR识别结果?CSV/JSON格式教程

如何导出Fun-ASR识别结果?CSV/JSON格式教程

你刚用 Fun-ASR 完成了一次会议录音转写,屏幕上整齐地列出了几十段文字——但接下来呢?
想把结果发给同事做纪要整理?需要导入 Excel 做关键词统计?或者要喂给另一个 NLP 工具做后续分析?

别急着截图、复制粘贴、手动整理。Fun-ASR WebUI 其实早已内置了原生导出能力:只需一次点击,就能将识别结果保存为结构清晰的 CSV 或 JSON 文件。
这不是隐藏功能,也不是需要改代码的“高级操作”,而是批量处理模块中一个被很多人忽略的实用按钮。

本文将带你从零开始,完整走通「导出识别结果」的全流程——不讲原理、不堆参数,只聚焦一件事:怎么把识别好的文字,干净、准确、带时间戳、带原始与规整双版本,一次性导出成你真正能用的文件。

1. 导出功能在哪?先确认你的使用场景

Fun-ASR 的导出能力并非处处可用,它只在两个明确场景下生效:
批量处理完成后的结果页(最常用、最推荐)
识别历史页面中的单条记录详情页(适合补导、查漏)

而以下场景不支持直接导出
单次语音识别(即“语音识别”主面板)的即时结果
实时流式识别的滚动文本
VAD 检测结果页

这个设计很合理:单次识别是临时交互,而批量处理和历史记录代表的是已确认、需归档、有长期价值的数据资产。所以导出入口也只出现在这些“资产沉淀区”。

提示:如果你正在看单次识别结果,想立刻导出,请先点击右上角“保存到历史”按钮(图标为 ),再进入“识别历史”页面操作。这是唯一合规路径。

2. 批量处理导出:高效、完整、开箱即用

这是绝大多数用户的核心需求场景——比如你上传了 20 个客服通话 MP3,系统自动识别完毕,现在要交付给质检团队。下面就是标准操作流:

2.1 确保已完成批量处理

  • 进入 Fun-ASR WebUI → 点击顶部导航栏【批量处理】
  • 上传多个音频文件(支持拖拽、多选)
  • 配置好语言、ITN、热词等参数后,点击【开始批量处理】
  • 等待进度条走完,状态变为“ 全部完成”

此时页面会显示一个清晰的结果汇总表,包含每条音频的文件名、识别状态、耗时、以及“查看结果”按钮。

2.2 找到导出入口:就在结果表格下方

不要急着点“查看结果”。先往下拉——你会看到一组功能按钮,其中最醒目的就是:

[导出全部为 CSV] [导出全部为 JSON]

这两个按钮并排居中,背景色为蓝色(默认主题),字体加粗,位置固定在结果表格正下方,无需滚动查找。

小技巧:如果页面过长导致按钮被遮挡,可按Ctrl + End(Windows)或Cmd + ↓(Mac)快速跳转到底部。

2.3 CSV 导出详解:Excel 用户的首选格式

点击【导出全部为 CSV】后,浏览器会立即下载一个名为funasr_batch_export_YYYYMMDD_HHMMSS.csv的文件(时间戳精确到秒)。

打开它,你会发现结构极其友好,完全适配 Excel、WPS、Numbers 等所有主流表格软件:

idfilenametimestamplanguageresult_textitn_textduration_secmodel_name
1call_001.mp31745678901zh您好欢迎致电客服中心...您好,欢迎致电客服中心……128.4Fun-ASR-Nano-2512
2call_002.mp31745678922zh请问您的订单号是多少?请问您的订单号是多少?89.1Fun-ASR-Nano-2512

字段说明(全是大白话):

  • id:Fun-ASR 内部记录编号,用于追溯
  • filename:你上传时的原始文件名(含扩展名)
  • timestamp:识别完成时间(Unix 时间戳),Excel 中可用公式=A1/86400+DATE(1970,1,1)转为可读日期
  • language:识别所用语言代码(zh= 中文,en= 英文,ja= 日文)
  • result_text:模型原始输出,保留口语化表达(如“啊”、“嗯”、“那个”)
  • itn_text:启用 ITN 后的规整文本(如“二零二五年三月”→“2025年3月”,“一千二百三十四”→“1234”)
  • duration_sec:音频总时长(秒),精度到小数点后一位
  • model_name:当前运行的模型名称,方便后期回溯版本

实用建议:

  • 如果你只需要“规整后文本”做汇报,直接筛选itn_text列即可;
  • 若需统计各通话时长分布,用duration_sec列做数据透视表;
  • timestamp字段配合 Excel 排序,可轻松还原识别任务执行顺序。

2.4 JSON 导出详解:开发者与自动化流程的黄金格式

点击【导出全部为 JSON】,下载的文件名为funasr_batch_export_YYYYMMDD_HHMMSS.json

内容为标准 JSON 数组,每项对应一个识别任务,结构清晰、层级分明、无歧义,可直接被 Python、Node.js、Shell 脚本等任何现代编程环境解析:

[ { "id": 1, "filename": "call_001.mp3", "timestamp": 1745678901, "language": "zh", "result_text": "您好欢迎致电客服中心...", "itn_text": "您好,欢迎致电客服中心……", "duration_sec": 128.4, "model_name": "Fun-ASR-Nano-2512" }, { "id": 2, "filename": "call_002.mp3", "timestamp": 1745678922, "language": "zh", "result_text": "请问您的订单号是多少?", "itn_text": "请问您的订单号是多少?", "duration_sec": 89.1, "model_name": "Fun-ASR-Nano-2512" } ]

为什么 JSON 更适合技术场景?

  • 字段名与 CSV 完全一致,无缝对接已有数据管道;
  • 支持嵌套(未来若扩展时间戳对齐、分句结果,JSON 可自然升级,CSV 则需重构表头);
  • 无编码兼容问题(CSV 常因中文乱码让新手抓狂,JSON 默认 UTF-8);
  • 可直接用jq命令行工具做快速过滤,例如提取所有中文结果:
    jq 'map(select(.language == "zh"))' funasr_batch_export_20250425_143022.json

3. 识别历史导出:精准补救,单条也能导

有时你发现某次关键识别没进批量队列,或是批量导出后想单独核对某一条——这时,“识别历史”就是你的数据保险箱。

3.1 进入历史页面并定位目标记录

  • 点击顶部导航栏【识别历史】
  • 页面默认展示最近 100 条(按时间倒序)
  • 使用右上角搜索框输入文件名关键词(如weekly_meeting)或识别内容片段(如Q3目标),快速定位

找到目标记录后,不要点“查看详情”按钮——那是弹窗预览。你要做的是:
直接点击该行最右侧的“导出”图标(一个向下的箭头 ,悬停提示“导出此条记录”)

3.2 单条导出的两种格式选择

点击后,会弹出一个极简对话框,仅含两个选项:

  • 导出为 CSV(生成单行 CSV,含所有字段,逗号分隔)
  • 导出为 JSON(生成单对象 JSON,格式同批量导出的数组内单元素)

选择任一格式,浏览器即刻下载对应文件。文件名含 ID 和时间戳,例如:
funasr_history_id37_20250425_143511.csv

注意:单条导出不会包含“批次信息”(如批次ID、总文件数),因为它本质是独立记录。这正是它的优势——纯粹、无冗余、拿来即用。

4. 导出文件能做什么?三个真实工作流示例

光会导出还不够,关键是要知道这些文件如何融入你的实际工作。以下是三个高频、零门槛的落地用法:

4.1 用 Excel 做客服通话质检(非技术人员适用)

  1. 下载 CSV 文件,用 Excel 打开
  2. 新增一列“是否解决客户问题”,手动打勾/叉
  3. 新增一列“关键词命中”,用=IF(ISNUMBER(SEARCH("退款",D2)),"是","否")快速标记含“退款”的通话
  4. 插入数据透视表:行=“客服工号”(需提前在文件名中约定命名规则,如zhangsan_call_001.mp3),列=“是否解决”,值=计数
  5. 5 分钟生成一份可汇报的质检周报

4.2 用 Python 做会议纪要自动摘要(开发者适用)

import pandas as pd from transformers import pipeline # 读取导出的 CSV df = pd.read_csv("funasr_batch_export_20250425_143022.csv") # 提取所有规整文本 texts = df["itn_text"].tolist() # 加载本地轻量摘要模型(示例,实际可换 Fun-ASR 自带小模型) summarizer = pipeline("summarization", model="sshleifer/distilbart-cnn-12-6") # 批量生成摘要(注意长度限制) summaries = [] for text in texts: if len(text) > 50: # 避免空文本 try: summary = summarizer(text[:1024], max_length=120, min_length=30, do_sample=False) summaries.append(summary[0]["summary_text"]) except: summaries.append("摘要生成失败") else: summaries.append("文本过短,无需摘要") # 写回 CSV 新增一列 df["summary"] = summaries df.to_csv("with_summaries.csv", index=False, encoding="utf-8-sig")

4.3 用 Obsidian 建立个人语音知识库(知识工作者适用)

  1. 将 JSON 文件放入 Obsidian 的vault/ASR-Exports/文件夹
  2. 创建一个模板ASR-Template.md
    --- created: {{date}} tags: [asr, meeting, {{language}}] --- ## {{filename}} **原始识别** {{result_text}} **规整文本** {{itn_text}} **元数据** - 时长:{{duration_sec}} 秒 - 模型:{{model_name}} - 时间:{{timestamp | date: "%Y-%m-%d %H:%M"}}
  3. 用 Dataview 插件自动索引所有 JSON 文件,生成动态看板:“本周识别了多少分钟?”、“哪些会议提到了‘AI’?”

5. 常见问题与避坑指南

即使流程简单,实践中仍有几个高频卡点,提前了解可省去 80% 的调试时间:

Q1:导出的 CSV 在 Excel 里中文显示为乱码?

A:这是 Windows Excel 的经典顽疾。正确打开方式:
① Excel → 数据 → 从文本/CSV → 浏览选择文件 → 编码选UTF-8→ 加载
② 或用 WPS / Numbers / Google Sheets,它们默认正确识别 UTF-8

Q2:导出的 JSON 文件里result_text字段有换行,导致解析失败?

A:Fun-ASR 的识别结果本身不含换行符(\n),但若原始音频中有明显停顿,模型可能输出后跟空格,视觉上像换行。JSON 标准允许字符串内含\n,只要用标准 JSON 解析器(如 Pythonjson.load())就不会出错。若手动编辑过文件,请勿用记事本——改用 VS Code 等支持 UTF-8 的编辑器。

Q3:批量导出后,发现某几条的itn_text是空的?

A:检查该条记录的“系统设置”中 ITN 是否被关闭。Fun-ASR 的 ITN 开关是按任务独立配置的。在批量处理时若未勾选“启用文本规整”,则对应itn_text字段为空字符串。解决方案:重新提交该文件,确保勾选 ITN。

Q4:导出文件里没有时间戳对齐(逐句起止时间)?

A:当前 Fun-ASR WebUI 的导出功能不包含分句级时间戳,仅提供整段音频的duration_sec。如需精确到秒的说话人切分,需调用 Fun-ASR 的底层 API 并开启output_word_timestamps=True参数,这属于进阶用法,不在 WebUI 范围内。

Q5:导出按钮是灰色的,无法点击?

A:两个原因:
① 批量处理尚未完成(状态不是“ 全部完成”,可能是“ 部分失败”或“⏳ 处理中”);
② 当前处于“语音识别”或“实时流式识别”等非批量/非历史页面——请务必切换到【批量处理】结果页或【识别历史】详情页。

6. 总结:导出不是终点,而是数据价值的起点

回顾整个流程,你会发现 Fun-ASR 的导出设计非常务实:
🔹位置明确——只在数据已沉淀的页面提供,避免误操作;
🔹格式精简——CSV 为业务人员而生,JSON 为工程师而设,不堆砌无用字段;
🔹字段实用——result_textitn_text并存,兼顾原始性与可用性;
🔹命名规范——文件名自带时间戳,杜绝覆盖风险;
🔹零依赖——无需安装插件、无需配置环境,浏览器点一下就完成。

但请记住:导出文件本身只是载体。真正的价值,在于你用它做了什么——是生成了一份让领导眼前一亮的分析报告?是训练出了更懂业务的定制化模型?还是构建了一个只属于你自己的语音知识图谱?

Fun-ASR 给了你高质量的“原材料”,而下一步的“深加工”,永远由你定义。


获取更多AI镜像

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

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

WuliArt Qwen-Image Turbo实测:4步生成1024×1024高清图片

WuliArt Qwen-Image Turbo实测:4步生成10241024高清图片 你有没有试过等一张图生成完,咖啡都凉了三次? 有没有在显卡风扇狂转、温度飙升到85℃时,屏幕还卡在「Rendering...」? 有没有明明写了超详细的Prompt&#xff…

作者头像 李华
网站建设 2026/4/16 13:32:36

DamoFD模型性能实测:RTX 3090下200FPS人脸检测实操

DamoFD模型性能实测:RTX 3090下200FPS人脸检测实操 你有没有试过在本地显卡上跑一个人脸检测模型,结果等了十几秒才出框?或者好不容易部署成功,一换图片就报错、崩溃、漏检?别急——这次我们不讲理论,不堆…

作者头像 李华
网站建设 2026/4/16 12:26:29

Qwen3-Reranker-4B快速上手:Gradio WebUI调用+vLLM服务验证全流程

Qwen3-Reranker-4B快速上手:Gradio WebUI调用vLLM服务验证全流程 1. 为什么你需要关注Qwen3-Reranker-4B 你是不是经常遇到这样的问题:搜索结果一大堆,但真正相关的内容总在第5页之后?或者在做RAG应用时,召回的文档质…

作者头像 李华
网站建设 2026/4/16 14:00:23

5分钟部署FSMN-VAD离线语音检测,一键实现音频自动切分

5分钟部署FSMN-VAD离线语音检测,一键实现音频自动切分 你是否遇到过这样的问题:手头有一段30分钟的会议录音,想提取其中所有人说话的片段,但手动听写、标记起止时间要花两小时?或者正在开发语音识别系统,却…

作者头像 李华
网站建设 2026/4/11 17:37:20

用PyTorch-2.x-Universal-Dev-v1.0搭建推荐系统,省下3小时配置时间

用PyTorch-2.x-Universal-Dev-v1.0搭建推荐系统,省下3小时配置时间 你有没有过这样的经历:兴致勃勃想跑一个推荐系统实验,结果卡在环境配置上——CUDA版本不匹配、PyTorch和cuDNN对不上、Jupyter内核死活不识别GPU、pip install半天还在下载…

作者头像 李华