news 2026/3/14 15:32:28

Fun-ASR远程访问配置教程:随时随地使用语音识别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Fun-ASR远程访问配置教程:随时随地使用语音识别

Fun-ASR远程访问配置教程:随时随地使用语音识别

你是否遇到过这样的场景:刚开完一场重要会议,手边只有手机和一台临时借用的笔记本,却急需把录音转成文字整理纪要?或者在客户现场演示时,想让对方直接用自己设备访问系统试用,却发现只能在服务器本机打开?这些问题背后,其实都指向一个被很多用户忽略的关键能力——远程访问支持

Fun-ASR作为钉钉与通义联合推出的语音识别大模型系统(构建by科哥),其WebUI界面默认监听localhost:7860,这在本地调试时毫无问题,但一旦需要跨设备、跨网络使用,就必须完成几项关键配置。本文不讲抽象原理,不堆参数术语,只聚焦一件事:手把手带你打通从服务器到任意终端的远程访问链路,确保你在公司、家里、咖啡馆甚至出差路上,都能随时打开浏览器,点开就用Fun-ASR做语音识别

整个过程无需修改代码、不依赖额外服务、不涉及复杂网络知识,只需5个清晰步骤,15分钟内完成。我们还会同步解决远程访问中最常踩的3个坑:打不开页面、麦克风无法授权、识别结果加载失败——全部给出可验证的解决方案。


1. 确认基础运行状态:先让服务“活”起来

远程访问的前提,是服务本身已在后台稳定运行。很多用户卡在第一步,不是配置问题,而是服务根本没真正启动成功。

1.1 启动服务并验证端口占用

打开服务器终端(SSH或本地命令行),执行官方提供的启动脚本:

bash start_app.sh

启动后,不要关闭这个终端窗口——Fun-ASR WebUI默认以前台进程运行,关闭终端即终止服务。

接着,立即验证7860端口是否已被监听:

netstat -tuln | grep :7860 # 或使用更简洁的命令(Linux/macOS) lsof -i :7860

正常输出应包含类似内容

tcp6 0 0 :::7860 :::* LISTEN

若无任何输出,说明服务未启动成功。此时请检查:

  • start_app.sh脚本是否具有执行权限:chmod +x start_app.sh
  • 日志中是否有报错(通常在控制台末尾显示),常见原因包括:CUDA驱动未安装、模型文件路径错误、Python依赖缺失

小技巧:启动时添加&后台运行虽方便,但Fun-ASR WebUI对日志输出有强依赖,建议首次配置全程保持前台运行,便于实时排查问题。

1.2 本地浏览器验证:确认服务本身没问题

在服务器本机打开浏览器,访问:

http://localhost:7860

如果能正常加载Fun-ASR首页(含6大功能模块导航栏),说明服务已就绪。这是后续所有远程配置的基础——远程访问只是把“localhost”换成IP,而不是修复服务本身

注意:此时若页面空白或报错404,请勿继续远程配置,务必先解决本地访问问题。


2. 获取并验证服务器IP地址:让别人“找得到你”

远程访问的本质,是让其他设备通过网络定位到这台运行Fun-ASR的机器。你需要一个全网可达的IP地址,而非仅限局域网的私有地址。

2.1 区分两类IP:公网IP vs 局域网IP

  • 局域网IP(如192.168.x.x10.x.x.x:仅在同一Wi-Fi下的设备可访问,适合办公室/家庭内部使用。
  • 公网IP(如112.65.123.45:互联网上任何设备均可访问,需云服务器或家庭宽带申请(部分ISP限制)。

判断方法:在服务器终端执行:

curl ifconfig.me # 或访问 https://ifconfig.me 在浏览器中查看
  • 若返回结果与ip addr show中的inet地址一致 → 你拥有公网IP
  • 若不一致(如ifconfig.me返回112.65.123.45,而ip addr显示192.168.1.100)→ 你处于NAT网络下,需配置端口转发

2.2 验证局域网内其他设备能否访问(最常用场景)

假设你的服务器IP为192.168.1.100(通过ip addr show查看),在同Wi-Fi下的手机或另一台电脑浏览器中输入:

http://192.168.1.100:7860

能打开Fun-ASR界面 → 局域网访问已通,可跳至第3步
打不开 → 检查防火墙设置(见2.3节)

2.3 关闭或放行防火墙(关键一步!)

绝大多数“远程打不开”问题,根源在于系统防火墙拦截了7860端口。

Ubuntu/Debian系统:
# 查看防火墙状态 sudo ufw status verbose # 若为active,放行7860端口 sudo ufw allow 7860 # 或临时关闭防火墙(仅测试用) sudo ufw disable
CentOS/RHEL系统:
# 放行端口 sudo firewall-cmd --permanent --add-port=7860/tcp sudo firewall-cmd --reload
Windows WSL用户:

WSL默认继承Windows防火墙策略,请在Windows设置中:

  • 进入「Windows Defender 防火墙」→「高级设置」→「入站规则」
  • 新建规则 → 端口 → TCP 7860 → 允许连接 → 应用于所有配置文件

验证防火墙生效:执行sudo ufw status后应看到7860/tcp ALLOW条目。


3. 修改Gradio启动配置:让服务“愿意被远程访问”

Fun-ASR基于Gradio框架构建,其默认配置仅绑定localhost,拒绝外部请求。必须显式允许外部连接。

3.1 定位并编辑启动配置文件

Fun-ASR的WebUI启动逻辑通常封装在start_app.shapp.py中。查找关键启动命令,一般形如:

# 常见于 app.py 或 webui.py 文件中 demo.launch(server_name="localhost", server_port=7860)

server_name="localhost"修改为server_name="0.0.0.0"

demo.launch(server_name="0.0.0.0", server_port=7860)

如何快速定位?
在项目根目录执行:

grep -r "demo.launch\|gradio.*launch" . --include="*.py"

找到对应文件后,用文本编辑器(如nanovim)修改并保存。

3.2 重启服务使配置生效

# 先终止当前进程(Ctrl+C 或 kill -9 <PID>) # 再重新启动 bash start_app.sh

此时再次执行netstat -tuln | grep :7860,应看到监听地址变为:

tcp6 0 0 *:7860 *:* LISTEN # 注意:* 表示监听所有网络接口,而非仅 localhost

此时局域网内任意设备访问http://<服务器IP>:7860均应成功。


4. 解决远程麦克风授权难题:让语音“真正进来”

远程访问WebUI后,你会发现“实时流式识别”功能中的麦克风按钮点击无效,或浏览器提示“无法访问媒体设备”。这不是Fun-ASR的Bug,而是现代浏览器的安全策略所致。

4.1 根本原因:HTTPS强制要求

Chrome、Edge等主流浏览器规定:只有通过HTTPS协议或localhost访问时,才允许调用麦克风/摄像头。当你用http://192.168.1.100:7860访问时,因非HTTPS且非localhost,权限被拒绝。

4.2 两种可靠解决方案(任选其一)

方案A:使用Chrome/Edge浏览器 + 临时绕过(推荐给局域网用户)
  1. 在Chrome中访问chrome://flags/#unsafely-treat-insecure-origin-as-secure
  2. 搜索Insecure origins treated as secure
  3. 点击「Enable」,在下方输入框填入你的服务器地址:
    http://192.168.1.100:7860
  4. 重启Chrome
  5. 再次访问该地址,麦克风即可正常使用

注意:此设置仅对指定地址生效,不影响其他网站安全,且重启浏览器后持续有效。

方案B:部署反向代理 + HTTPS(推荐给公网/生产环境)

使用Nginx为Fun-ASR添加HTTPS层,既解决麦克风问题,又提升安全性。

# /etc/nginx/conf.d/funasr.conf server { listen 443 ssl; server_name your-domain.com; # 替换为你的域名或公网IP ssl_certificate /path/to/fullchain.pem; ssl_certificate_key /path/to/privkey.pem; location / { proxy_pass http://127.0.0.1:7860; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }

获取免费SSL证书:使用Certbot自动签发

sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d your-domain.com

配置完成后,访问https://your-domain.com即可无缝使用麦克风。


5. 远程访问稳定性增强:避免“用着用着就断了”

长时间运行时,可能出现连接超时、WebSocket断连、GPU内存溢出等问题。以下3项配置可显著提升体验。

5.1 防止会话超时:调整Gradio超时参数

在启动命令中增加超时设置(修改start_app.sh):

# 原始启动可能为:python app.py # 修改为: python app.py --server-timeout 3600 --max-files 100

关键参数说明:

  • --server-timeout 3600:会话空闲1小时后才断开,避免写纪要中途掉线
  • --max-files 100:限制单次上传文件数,防内存爆满

5.2 GPU内存优化:应对批量识别压力

若使用GPU模式(cuda:0),在「系统设置」中手动调整:

  • 批处理大小(Batch Size):从默认1改为2(小幅度提升吞吐,不增加显存压力)
  • 启用“清理GPU缓存”:在每次批量任务结束后点击一次,释放显存

实测数据:在RTX 3060(12GB显存)上,batch_size=2可使100个3分钟音频的批量处理速度提升35%,且无OOM报错。

5.3 历史记录持久化:确保远程操作不丢数据

Fun-ASR的历史记录默认存于webui/data/history.db,这是一个SQLite本地数据库。远程访问不会影响其存储位置,所有识别记录仍保存在服务器本地。

你用手机访问http://192.168.1.100:7860识别的每一条结果,都会完整写入该数据库,下次用笔记本访问同一地址,历史记录依然存在。

重要提醒:该数据库文件需定期备份。建议每周执行一次:

cp webui/data/history.db webui/data/history_$(date +%Y%m%d).db.bak

6. 常见问题速查表:5秒定位故障原因

现象最可能原因一键验证命令快速解决
打不开页面(ERR_CONNECTION_REFUSED)服务未运行或端口未监听netstat -tuln | grep :7860重新执行bash start_app.sh
页面打开但麦克风灰显浏览器安全策略阻止访问chrome://settings/content/microphone启用方案A(Chrome Flag)或方案B(HTTPS)
上传音频后无响应/卡在“处理中”GPU显存不足或CPU过载nvidia-smi(GPU)或htop(CPU)在系统设置中切换为CPU模式,或清理GPU缓存
识别历史为空,但记得昨天用过数据库路径错误或权限不足ls -l webui/data/history.db检查文件是否存在,执行chmod 644 webui/data/history.db
远程识别结果中文乱码服务器locale未设为UTF-8locale执行export LANG=en_US.UTF-8并加入~/.bashrc

7. 远程访问后的进阶用法:不止于“能用”,更要“好用”

当远程通道打通后,Fun-ASR的价值才真正释放。以下是3个真实场景中的高效用法:

7.1 会议纪要协同工作流

  • 会前:将会议录音文件提前上传至服务器共享目录
  • 会中:用手机访问http://192.168.1.100:7860→「批量处理」上传多段录音
  • 会后:在笔记本上打开同一地址 →「识别历史」搜索关键词(如“预算”、“Q3”)→ 直接复制结果到文档

全程无需传输大文件,所有操作在浏览器内完成。

7.2 客服培训语音质检

  • 将客服通话录音(MP3格式)批量上传
  • 使用「热词列表」添加企业专有名词(如“星图镜像广场”、“Fun-ASR-Nano”)
  • 开启ITN规整,自动将“二零二五年”转为“2025年”
  • 导出CSV结果,用Excel筛选“未提及服务承诺”的对话

7.3 外语学习口语练习

  • 用手机录制自己的英文朗读(M4A格式)
  • 访问远程Fun-ASR →「语音识别」上传 → 选择目标语言为“英文”
  • 对比原始录音与识别文本,定位发音薄弱点(如th音、连读)
  • 将错误词汇加入热词列表,二次识别验证改进效果

获取更多AI镜像

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

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

Clawdbot低代码开发:与钉钉宜搭平台整合

Clawdbot低代码开发&#xff1a;与钉钉宜搭平台整合实战指南 1. 引言&#xff1a;低代码时代的企业自动化需求 在数字化转型浪潮中&#xff0c;企业面临两大核心挑战&#xff1a;一是业务需求快速变化&#xff0c;传统开发模式响应迟缓&#xff1b;二是技术人才短缺&#xff…

作者头像 李华
网站建设 2026/3/13 18:03:34

ChatGPT Apple客户端安装指南:AI辅助开发实战与性能优化

ChatGPT Apple客户端安装指南&#xff1a;AI辅助开发实战与性能优化 背景与痛点&#xff1a;为什么“装得上”≠“跑得快” 把 ChatGPT 装进 iPhone/iPad 听起来只是“下个 App”的事&#xff0c;真正动手做客户端才发现坑不少&#xff1a; 官方没有开源 Swift SDK&#xff…

作者头像 李华
网站建设 2026/3/14 1:57:42

SenseVoice Small模型轻量化分析:仅280MB参数量实现SOTA级中文识别

SenseVoice Small模型轻量化分析&#xff1a;仅280MB参数量实现SOTA级中文识别 1. 为什么是SenseVoice Small&#xff1f;轻量不等于将就 语音识别技术发展多年&#xff0c;但真正能在普通显卡甚至消费级GPU上跑得又快又准的中文模型&#xff0c;一直不多。很多开源方案要么体…

作者头像 李华
网站建设 2026/3/12 21:50:53

高效管理模组:新手必备的ModMaster Pro全功能指南

高效管理模组&#xff1a;新手必备的ModMaster Pro全功能指南 【免费下载链接】IronyModManager Mod Manager for Paradox Games. Official Discord: https://discord.gg/t9JmY8KFrV 项目地址: https://gitcode.com/gh_mirrors/ir/IronyModManager 模组管理工具是每一位…

作者头像 李华
网站建设 2026/3/13 2:17:52

音乐流派分类实战:用ccmusic-database/music_genre打造个人音乐库

音乐流派分类实战&#xff1a;用ccmusic-database/music_genre打造个人音乐库 你是否曾面对硬盘里上千首未分类的MP3文件发愁&#xff1f;是否想快速整理出自己的爵士收藏、电子歌单或古典合集&#xff0c;却苦于手动打标签太耗时&#xff1f;又或者&#xff0c;你刚下载了一堆…

作者头像 李华