Fun-ASR WebUI 本地部署与使用指南
在远程办公、在线教育和智能客服日益普及的今天,语音转文字的需求正以前所未有的速度增长。会议录音、课堂讲解、访谈记录——这些原本需要人工逐字整理的内容,如今都期待通过自动语音识别(ASR)技术实现高效转化。然而,当我们将目光投向主流云服务时,高昂的调用成本、数据外传的风险以及网络延迟带来的体验割裂,常常让人望而却步。
正是在这种背景下,Fun-ASR WebUI 的出现显得尤为及时。这款由钉钉联合通义实验室推出的开源语音识别系统,不仅具备高精度多语言支持能力,更通过一个简洁直观的图形界面,让非技术人员也能轻松完成复杂的语音转写任务。它真正实现了'本地运行、零代码操作、全程可控'的理想状态。
从模型到交互:理解 Fun-ASR 的核心架构
Fun-ASR 并非简单的工具封装,而是一套经过深度优化的端到端语音识别体系。其底层搭载的是轻量级大模型 Fun-ASR-Nano-2512,专为本地部署设计,在保持较高准确率的同时大幅降低资源消耗。该模型采用编码器 - 解码器结构,并融合注意力机制,能够对梅尔频谱图进行有效建模,逐词生成语义连贯的文本输出。
对于中文场景,模型特别增强了分词与声调建模能力;英文则支持音素级别的细粒度识别。更重要的是,内置的 ITN(Inverse Text Normalization)模块 能将口语中的'二零二四年三月'自动规整为'2024 年 3 月',或将'一百八十万'转换为'1,800,000',极大提升了输出文本的可用性。
但真正让它脱颖而出的,是其原生集成的 WebUI 界面。不同于许多开源项目需要命令行调用或自行搭建前端,Fun-ASR 直接提供了一个基于 Gradio 框架开发的可视化操作平台。用户只需启动服务,用浏览器访问 http://localhost:7860,即可上传音频、选择参数、查看结果,整个过程无需编写任何代码。
import gradio as gr
from funasr import AutoModel
# 初始化模型
model = AutoModel(model="FunASR-Nano-2512", device="cuda")
def recognize_audio(audio_file, language="zh", hotwords=None, enable_itn=True):
result = model.generate(
input=audio_file,
language=language,
hotwords=hotwords.split("\n") if hotwords else None,
itn=enable_itn
)
return {
"raw_text": result[0]["text"],
"normalized_text": result[0].get("itn_text", "")
}
# 构建界面
with gr.Blocks() demo:
gr.Markdown()
gr.Row():
audio_input = gr.Audio(=)
lang_dropdown = gr.Dropdown([, , ], label=, value=)
hotword_box = gr.Textbox(label=)
itn_checkbox = gr.Checkbox(label=, value=)
btn = gr.Button()
output = gr.JSON()
btn.click(fn=recognize_audio, inputs=[audio_input, lang_dropdown, hotword_box, itn_checkbox], outputs=output)
demo.launch(server_name=, port=, share=)

