给 Agent 添加语音,不只是把麦克风和喇叭接上。完整链路通常包括语音采集、语音识别、文本交给 Agent 推理、回复文本转语音、前端播放,以及异常兜底。下面按一次可落地的配置流程来写,适合已经有一个可运行文本 Agent,希望把它改造成可听、可说的语音 Agent 的场景。不同平台的按钮名称和接口字段会有差异,具体名称以你正在使用的控制台为准,但实施顺序基本一致。
第一步,确认文本 Agent 已经能稳定对话

先不要急着接语音。打开你现有的 Agent 调试窗口,用文字连续问三类问题:一句普通问候、一句业务问题、一句边界问题。比如“你好”“帮我查询订单状态”“你能帮我做什么”。
操作上,先检查 Agent 是否已经绑定了模型、知识库、工具或工作流,并确认文本输入后能返回结构完整的回答。如果 Agent 本身经常超时、答非所问,接入语音后问题会被放大,因为语音识别可能还会带来错字和断句偏差。
完成这一步后,你要得到一个结果:文本 Agent 在纯文字模式下可用,并且你知道它的输入入口在哪里、输出字段是什么。后续语音识别出的文本,就会送到这个入口;Agent 生成的回复文本,也会交给语音合成模块播报。
第二步,选定语音链路的接入方式
常见做法有两种:一种是在 Agent 平台内直接开启语音能力,平台提供语音识别和语音合成配置;另一种是自己在前端或服务端接入 ASR 和 TTS 服务,再把识别文本传给 Agent。
如果你的平台已有“语音输入”“语音播报”“通话模式”等配置项,优先用平台内置能力,配置成本低,适合客服、助手、问答类场景。如果你需要控制采样率、流式识别、实时打断、多音色、私有化部署,就更适合自建语音链路。
这一步的操作结果是确定架构:浏览器或 App 负责录音,ASR 把声音转成文字,Agent 处理文字,TTS 把回复转成音频,播放器播放音频。把这条链路画出来,后面排查问题会很省时间。
第三步,开启语音输入并处理麦克风权限
在前端页面或 Agent 运行容器里增加语音输入入口。最简单的交互是一个“按住说话”或“点击开始录音”的按钮。用户点击后,请求麦克风权限;授权成功后开始采集音频;用户松开或再次点击时结束录音并提交。
如果使用浏览器,需要注意页面必须在安全环境下访问,常见要求是 HTTPS 或本地开发环境。移动端还要处理系统权限弹窗,用户拒绝权限时要给出明确提示,例如“请在系统设置中开启麦克风权限后重试”。
录音参数不要随意设置。一般语音识别服务会要求特定格式,如 wav、pcm、mp3,采样率可能是 16kHz 或 48kHz,单声道更常见。具体要求以所选 ASR 服务文档为准。你的操作结果应是:点击录音后能生成一段符合 ASR 要求的音频,并且可以在本地播放确认声音清晰。
第四步,把录音送入语音识别
语音识别有两类提交方式:整段识别和流式识别。整段识别是在用户说完后上传音频,适合表单问答、低频对话;流式识别是一边说一边传音频片段,适合实时对话、电话客服、口语陪练。
实施时先从整段识别开始,成功率更高。你需要把录音文件或音频数据提交给 ASR 接口,拿到返回文本。返回结果里可能包含最终文本、置信度、分段时间戳、标点等字段。不要把所有字段直接塞给 Agent,通常只取最终识别文本。
这里建议加一个识别文本确认区。用户说完后,页面先显示“我听到的是:……”,再自动或手动发送给 Agent。对于内部工具可以自动发送;对于医疗、金融、合同等高风险业务,建议让用户确认后再发送。
完成后应得到的结果是:用户说一句话,系统能转成一行可读文本。你要特别测试数字、人名、地名、英文缩写和业务专有词。如果识别错误较多,需要配置热词、自定义词表或提示用户换一种说法。
第五步,清洗识别文本再交给 Agent
语音识别结果往往比键盘输入更口语化,可能包含“嗯”“那个”“帮我看一下”等无效词,也可能把停顿识别成奇怪标点。直接交给 Agent 并非不行,但为了稳定,建议在发送前做轻量清洗。
可执行的处理包括:去掉开头和结尾的空白字符;过滤连续重复的语气词;把全角标点统一;限制最大输入长度;对明显为空的识别结果返回“没有听清,请再说一遍”。不要过度改写用户原话,尤其不要自行补充业务信息。
然后把清洗后的文本作为用户消息传给 Agent。若原有 Agent 接口支持会话 ID,一定要带上同一个会话 ID,这样语音对话才能保持上下文。比如用户先问“这款产品多少钱”,再问“有没有黑色”,Agent 才知道“这款产品”指什么。
这一步的结果是:语音识别文本能够进入 Agent,并在同一个对话中获得正常回复。
第六步,设置 Agent 回复的播报文本
Agent 返回的内容不一定适合直接朗读。比如它可能返回表格、链接、按钮指令、JSON 字段或很长的说明。语音播报前需要确定“播报文本”来自哪里。
如果 Agent 有多字段输出,建议区分屏幕展示文本和语音播报文本。屏幕上可以展示完整内容,语音只播核心摘要。例如订单查询场景,页面展示订单号、物流轨迹、预计到达时间;语音播报“您的订单正在运输中,预计明天下午送达”。
如果平台支持回复模板,可以新增一个播报版本,要求 Agent 用短句、少括号、少编号、避免表格。若不支持多字段,可以在 TTS 前增加一层文本整理,把 Markdown 表格、URL、特殊符号去掉,把长段落拆成适合朗读的句子。
完成后你应得到一个结果:Agent 的回复文本既能在页面阅读,也能被 TTS 顺畅朗读,不会出现“竖线、反引号、括号链接”被念出来的尴尬情况。
第七步,配置语音合成音色和参数
接下来把播报文本提交给 TTS 服务。配置重点包括音色、语速、音量、语调、语言和输出格式。不要一开始追求最像真人,先保证清晰、稳定、听得懂。
客服类 Agent 建议选择中性、清楚、语速略慢的音色;学习陪练可以选择更自然、有亲和力的音色;设备播报或工单提醒则应选择辨识度高、短句清晰的音色。语速可以先设为默认,如果用户经常反馈听不清,再降低一点。
还要确认 TTS 输出格式和播放器兼容。网页常见音频格式要能被目标浏览器播放;App 或小程序可能有自己的限制。若你的播报文本较长,优先考虑分句合成,避免一次合成长音频导致等待时间过长。
这一步的结果是:输入一段 Agent 回复文本,可以生成可播放音频,并且音色、速度、清晰度符合业务场景。
第八步,接入前端播放和打断机制
音频生成后,前端需要自动播放或由用户点击播放。是否允许自动播放,要看终端环境限制;很多浏览器对未交互页面的自动播放有限制。因此实际产品里,通常让用户先点击语音按钮,后续对话再自动播报。
播放时要处理三个状态:正在识别、正在思考、正在播报。用户需要知道系统在做什么,避免重复点击。可以用文案提示“正在聆听”“正在生成回答”“正在播报”,也可以用图标动画,但不要只靠动画,弱网下用户容易误判。
打断机制也很重要。用户在播报过程中再次点击录音,应停止当前音频播放,开始新一轮录音。否则会出现用户说话和系统播报互相干扰。实现上,前端在启动录音前先暂停并清空当前播放器队列。
这一步完成后的结果是:用户可以连续进行“说一句、听回答、再追问”的对话,而且能随时打断播报。
第九步,处理失败提示和降级路径
语音链路比文本链路更容易失败,常见问题包括麦克风无权限、录音为空、ASR 超时、识别为空、Agent 超时、TTS 失败、音频播放失败。每个环节都要有用户能理解的提示。
提示不要写成技术错误码。麦克风失败提示“没有获取到麦克风权限,请开启后重试”;识别为空提示“这次没有听清,可以靠近麦克风再说一遍”;TTS 失败时不要卡住,可以直接展示文字回复,并提示“语音播报暂时不可用”。
还要保留文字输入框。语音不是文本的替代品,而是补充入口。嘈杂环境、会议场景、权限受限设备,都需要用户回到文字模式。
完成后你的系统应能做到:语音失败不影响文本对话,播报失败不丢失 Agent 回复。
第十步,做一次端到端验收
最后按真实用户路径测试,不要只测接口。准备几类句子:短问候、长问题、带数字的问题、连续追问、打断播报、无声录音、嘈杂背景。每类至少跑几遍,记录识别准确率、首字响应时间、完整播报耗时和失败提示是否清楚。
如果响应慢,先拆开看耗时来自哪里:录音上传、ASR、Agent 推理、TTS 合成还是音频下载。语音体验对等待很敏感,能流式的地方可以逐步改成流式,但第一版先保证链路闭环。
验收通过的标准很简单:用户点击后能说话,系统能识别成文字,Agent 能正确回答,回复能被自然播报;失败时用户知道下一步该怎么做。做到这一步,Agent添加语音的实施步骤:从语音输入到播报配置就基本完成了。后续再优化热词、音色、流式响应和多轮打断,体验会明显提升。
Ai菜鸟网。发布者:aibianjibu,转载请注明出处:https://www.alyyhw.com/10633.html