FunAsr 和 Whisper 识别完要 LLM 校对,润色那步 Base URL 填 TaoToken
2026/9/19 12:47:35 网站建设 项目流程

当 FunAsr 和 Whisper 都救不了口音音频:把 LLM 校对那步接到 TaoToken

75 分钟带口音的音频,满篇专业词和文言腔,FunAsr 用 large 模型跑完 2 分钟,Whisper 在 9000 端口网页里转完 4 分钟,结果两份文本都不能直接用。这是很多做本地语音识别的人都会遇到的场景:ASR 本身没问题,问题出在识别完之后那一步——把结果丢给大模型做合并、校对、润色。真正消耗 Token 的,就是这个后处理环节。

本文不改动你的 FunAsr 和 Whisper 部署,只做一件事:把后处理链路里调润色模型的那段配置,从原来的接口换成 TaoToken。官网入口在 https://taotoken.net/?utm_source=taotoken_aicg_blog_end ,注册后创建 Key,把润色客户端的 Base URL 填成https://taotoken.net/api,模型名按通道里实际可用的名称填,就能跑通。

先理清:哪些步骤需要 Key,哪些完全不需要

原文的流程可以拆成三段:

第一段是 FunAsr 转本机音频。用的是 GPT-SoVITS docker 镜像里的库和 large 模型,命令是funasr_asr.py,镜像 7.09G 加模型 1.4G,约 2 分钟转完。这一步纯本地推理,不需要任何 Key。

第二段是 Whisper 识别。用的是onerahmet/openai-whisper-asr-webservice:latest-gpu镜像,约 11.5G,启动后在浏览器 9000 端口通过网页调用,约 4 分钟转完。这一步也是本地服务,不需要 Key。

第三段才是真正要接大模型的地方:把多个 ASR 的结果丢给 LLM 合并、把人工校对结果做成错误映射表再回传校对、把识别文本转成音素表再让 LLM 还原成文字。这三种后处理方法,每一种都要调 LLM,每一种都在消耗 Token。我们要改的就是这一段的 Base URL 和模型名。

TaoToken 前置:注册、建 Key、确认通道

打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end ,注册账号。登录后进入控制台,在 API Keys 页面创建一个新的 Key。这个 Key 就是后面填进润色客户端里的凭证。

创建完 Key 之后,不要急着关页面。在控制台里确认一下当前通道下有哪些模型可用,把模型 ID 记下来。不同通道可用的模型名不一样,填错模型名会直接报 404 或 model not found。这一步花两分钟,能省掉后面半小时的排查。

如果你用的是 Claude Code 做后处理脚本,配置写在settings.json里,环境变量是ANTHROPIC_BASE_URLANTHROPIC_API_KEY。如果用的是 Codex,配置写在config.toml里。如果只是普通的 Python 脚本调 OpenAI 兼容接口,那就是base_urlapi_key两个参数。

可复制配置:把润色那步的 Base URL 换掉

假设你原来的润色脚本是这样调的:

from openai import OpenAI client = OpenAI( api_key="原来的Key", base_url="原来的地址" ) response = client.chat.completions.create( model="原来的模型名", messages=[ {"role": "system", "content": "你是一个文本校对助手,请对以下语音识别结果进行润色和纠错。"}, {"role": "user", "content": asr_text} ] )

改成 TaoToken 之后:

from openai import OpenAI client = OpenAI( api_key="YOUR_API_KEY", base_url="https://taotoken.net/api" ) response = client.chat.completions.create( model="通道里实际可用的模型ID", messages=[ {"role": "system", "content": "你是一个文本校对助手,请对以下语音识别结果进行润色和纠错。"}, {"role": "user", "content": asr_text} ] )

注意两个细节:Base URL 是https://taotoken.net/api,不带/v1,也不要加任何 utm 参数。模型名不要照抄文档里的示例,去控制台看你那条通道实际可用的名称。

如果你用的是 Claude Code 的 CLI 方式,命令是:

npm i -g @taotoken/taotoken taotoken cc -k YOUR_API_KEY -u https://taotoken.net/api -m MODEL_ID

这条命令适合把后处理脚本挂到 Claude Code 的编码流程里,比如你写完校对逻辑之后直接让 Claude Code 帮你跑一遍验证。

验证请求:用同一份 ASR 输出跑一次合并校对

配置改完之后,不要直接上 75 分钟的完整音频。先用一小段 ASR 输出做验证。

把 FunAsr 和 Whisper 对同一段音频的识别结果各取前 200 字,拼成一个 prompt,让 LLM 做合并校对。跑通之后,去 TaoToken 控制台看这次调用的 Token 消耗。能看到消耗记录,说明请求确实打到了 TaoToken 通道上,Key 和 Base URL 都对了。

验证通过之后,原文提到的那三种后处理方法都可以用同一把 Key 在同一个通道上完成:

第一种,多个 ASR 结果丢给 LLM 合并。FunAsr 和 Whisper 各有一份输出,让 LLM 对比两份文本,取长补短,输出一份合并后的结果。

第二种,人工校对结果做成错误映射表再回传校对。比如你人工改过一段文本,把「错词→正确词」做成一个映射表,连同原始识别文本一起传给 LLM,让它按映射表批量纠正。

第三种,识别文本转音素表再让 LLM 还原成文字。针对专业词汇和人名,先把识别文本转成拼音或音素,再让 LLM 根据音素和上下文还原成正确的文字。这一步对文言腔和专业术语特别有效。

本篇常见错排查

报 401 或 invalid api key:检查 Key 是不是复制完整了,有没有多余空格。如果 Key 是在控制台刚创建的,确认一下有没有启用。

报 404 或 model not found:模型名填错了。去控制台看当前通道实际可用的模型 ID,不要用文档里的示例名。

Base URL 填了/v1导致请求失败:TaoToken 的 Base URL 是https://taotoken.net/api,不要在后面加/v1。有些客户端会自动补/v1,如果你用的库有这个行为,检查一下最终请求的 URL。

请求能通但返回内容为空:检查 prompt 是不是太长了,或者模型对输入长度有限制。75 分钟的音频转出来的文本很长,建议分段处理,不要一次性全丢进去。

控制台看不到 Token 消耗:确认请求确实打到了 TaoToken。如果本地有代理或者环境变量里还有旧的 Base URL,可能会覆盖掉你的配置。检查一下OPENAI_BASE_URL之类的环境变量。

FunAsr 或 Whisper 本身报错:这两步不需要 Key,报错跟 TaoToken 无关。检查 docker 镜像是否正常启动,模型文件是否完整,端口是否被占用。

语义一致 CTA

后处理链路的接入配置改完之后,你的 FunAsr 和 Whisper 部署完全不用动,本地识别照旧跑,只有调润色模型的那一段走了 TaoToken。三种后处理方法——多 ASR 结果合并、错误映射表回传校对、音素表还原文字——都可以用同一把 Key 在同一个通道上完成。

如果你在配置过程中遇到接入问题,或者想确认某个模型 ID 是否可用,可以去 API Keys 页面和接入文档里对照检查。如果你打算把后处理脚本长期挂在编码流程里跑,Coding Plan 会更适合这种持续调用的场景。想先验证模型对话效果的话,模型对话页面可以直接测试。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询