2026/4/16 20:39:40
网站建设
项目流程
湖北网站备案需要多久,清远哪里有网页设计培训学费,治多县网站建设公司,买app的网站建设Paraformer-largeGradio二次开发#xff1a;增加导出TXT/PDF功能
1. 背景与需求分析
随着语音识别技术在会议记录、教学转写、媒体内容处理等场景的广泛应用#xff0c;用户对识别结果的后续使用提出了更高要求。原始的 Paraformer-large Gradio 实现虽然提供了高效的离线…Paraformer-largeGradio二次开发增加导出TXT/PDF功能1. 背景与需求分析随着语音识别技术在会议记录、教学转写、媒体内容处理等场景的广泛应用用户对识别结果的后续使用提出了更高要求。原始的 Paraformer-large Gradio 实现虽然提供了高效的离线语音转文字能力但缺乏将识别结果持久化保存的功能。在实际应用中用户不仅希望看到识别文本更需要将其导出为通用格式如 TXT 或 PDF以便归档、分享或进一步编辑。因此本文基于已有的Paraformer-large 离线长音频识别系统进行功能扩展重点实现一键导出识别结果为.txt文本文件支持生成带格式排版的.pdf文件在 Gradio 界面中集成下载按钮提升交互体验该改造无需修改核心 ASR 模型逻辑属于典型的前端功能增强型二次开发适合希望快速提升工具实用性的开发者参考。2. 功能设计与技术选型2.1 核心功能模块划分为实现导出功能需在原有系统基础上新增以下三个模块模块职责结果缓存模块临时存储每次识别的文本结果供导出调用文件生成模块将文本转换为指定格式TXT/PDF并保存到服务器临时目录下载接口模块提供给 Gradio 的可点击下载组件触发文件传输2.2 技术方案选择TXT 导出直接使用 Python 内置open()函数写入.txt文件轻量高效。PDF 导出对比多种方案后选择fpdf2库原因如下安装简单pip install fpdf2无外部依赖兼容性强支持中文 UTF-8 编码通过set_font(helvetica)自动处理体积小适合嵌入现有服务为什么不选 reportlab虽然 reportlab 更强大但配置复杂且对中文支持不友好而weasyprint需要额外安装 CSS 引擎增加了部署负担。3. 代码实现详解3.1 安装依赖库确保环境中已安装fpdf2pip install fpdf2若使用镜像环境请将其加入启动脚本或 Dockerfile 中。3.2 修改主程序 app.py以下是完整更新后的app.py代码在原功能基础上增加了导出逻辑import gradio as gr from funasr import AutoModel from fpdf import FPDF import os import time # 加载模型 model_id iic/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-pytorch model AutoModel( modelmodel_id, model_revisionv2.0.4, devicecuda:0 ) # 全局变量缓存最新识别结果 latest_text def asr_process(audio_path): global latest_text if audio_path is None: result 请先上传音频文件 else: res model.generate(inputaudio_path, batch_size_s300) if len(res) 0: result res[0][text] else: result 识别失败请检查音频格式 # 更新全局缓存 latest_text result return result def export_to_txt(): if not latest_text: return None # 生成唯一文件名 filename ftranscript_{int(time.time())}.txt filepath os.path.join(/root/workspace/output, filename) # 创建输出目录 os.makedirs(os.path.dirname(filepath), exist_okTrue) with open(filepath, w, encodingutf-8) as f: f.write(latest_text) return filepath def export_to_pdf(): if not latest_text: return None filename ftranscript_{int(time.time())}.pdf filepath os.path.join(/root/workspace/output, filename) os.makedirs(os.path.dirname(filepath), exist_okTrue) pdf FPDF() pdf.add_page() pdf.set_auto_page_break(autoTrue, margin15) pdf.set_font(helvetica, size12) # 分行写入避免超长文本截断 for line in latest_text.split(\n): pdf.multi_cell(0, 10, txtline) pdf.output(filepath) return filepath with gr.Blocks(titleParaformer 语音转文字控制台) as demo: gr.Markdown(# Paraformer 离线语音识别转写) gr.Markdown(支持长音频上传自动添加标点符号和端点检测。) with gr.Row(): with gr.Column(): audio_input gr.Audio(typefilepath, label上传音频或直接录音) submit_btn gr.Button(开始转写, variantprimary) with gr.Column(): text_output gr.Textbox(label识别结果, lines15) with gr.Row(): with gr.Column(): txt_btn gr.Button(导出为 TXT) txt_download gr.File(label下载 TXT 文件) with gr.Column(): pdf_btn gr.Button(导出为 PDF) pdf_download gr.File(label下载 PDF 文件) # 事件绑定 submit_btn.click(fnasr_process, inputsaudio_input, outputstext_output) txt_btn.click(fnexport_to_txt, inputsNone, outputstxt_download) pdf_btn.click(fnexport_to_pdf, inputsNone, outputspdf_download) demo.launch(server_name0.0.0.0, server_port6006)3.3 关键代码解析全局状态管理latest_text 使用全局变量缓存最近一次识别结果。注意此方式适用于单用户本地服务多用户场景建议改用会话机制gr.State或 Redis 缓存。文件路径安全处理os.makedirs(os.path.dirname(filepath), exist_okTrue)确保输出目录存在避免因路径不存在导致写入失败。PDF 中文支持pdf.set_font(helvetica, size12)fpdf2默认字体支持 UTF-8无需额外加载中文字体即可正常显示中文。多行文本渲染pdf.multi_cell(0, 10, txtline)使用multi_cell替代cell防止长段落溢出页面边界。4. 使用说明与优化建议4.1 启动服务将上述app.py保存至/root/workspace/app.py执行source /opt/miniconda3/bin/activate torch25 cd /root/workspace python app.py4.2 访问 Web 界面通过 SSH 隧道映射端口后在本地浏览器访问http://127.0.0.1:6006操作流程上传音频文件或录音点击“开始转写”查看识别结果点击“导出为 TXT”或“导出为 PDF”点击生成的链接下载文件4.3 性能与稳定性优化建议问题建议解决方案多用户并发时结果混淆使用gr.State()替代全局变量输出文件堆积添加定时清理脚本如 cron 删除 24 小时前文件PDF 排版单一支持自定义模板标题、作者、时间戳不支持命名下载返回带有语义名称的文件如基于音频文件名生成示例改进文件命名逻辑base_name os.path.splitext(os.path.basename(audio_path))[0] if audio_path else unknown filename f{base_name}_transcript.pdf5. 总结本文完成了对 Paraformer-large Gradio 语音识别系统的实用化升级成功实现了TXT 和 PDF 文件导出功能。整个过程无需改动底层模型仅通过扩展 Gradio UI 组件和引入轻量级 PDF 生成库fpdf2即可完成。主要成果包括✅ 实现了识别结果的持久化导出✅ 提供了简洁直观的下载交互界面✅ 保证了系统的低依赖性和高可移植性该方案特别适用于教育、会议、访谈等需要长期保存转录内容的场景。未来可进一步拓展为支持 Word、SRT 字幕等更多格式打造一体化语音处理工作台。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。