☰
企业级Voice Agent语音智能体实战:从ASR到TTS全链路搭建
2026/10/6 2:02:47 网站建设 项目流程

很多做 Agent 应用的同学,初期都卡在同一个地方:用大模型接口做文字对话很顺畅,但一旦想做成“能说话、能听、能打断、能调用工具”的语音智能体,资料就开始零散不成体系。要么是某个厂商的 SDK demo,要么是纯学术论文,真正能落到项目里的闭环教程很少。本文围绕企业级 Voice Agent 语音智能体展开,从核心链路、环境准备、实战代码到学习路线,尽量做成一套可以直接照着搭的方案。无论你是学生、后端开发,还是想转 AI 应用方向的技术人,都可以从中找到自己能上手的切入点。

1. 背景与核心概念

1.1 从 Chatbot 到 Voice Agent 的演进

过去我们说的智能助理,更多是文字对话机器人。用户输入一句“帮我查一下今天的天气”,机器人返回一段文字;用户再问“那明天呢”,再返回一段文字。这个模式解决了“文本信息获取”的问题,但和真实世界里的助理服务体验还有明显差距。

Voice Agent 的核心不同在于:它以语音作为主要交互媒介,并把大语言模型(LLM)放在完整的交互闭环中。

一个完整的 Voice Agent 通常包含:

  • 语音识别(ASR):把用户说话的声音转成文字。
  • 大语言模型(LLM):理解用户意图,生成回复内容,并且具备工具调用、记忆、多轮对话能力。
  • 语音合成(TTS):把模型回复的文字转成自然语音。
  • 会话管理(Session/Context):保存多轮对话状态,支持打断、补充、上下文理解。
  • Agent 编排(Agent Orchestration):决定模型何时调用工具、查询知识库、触发业务流程。

也就是说,Voice Agent 不是简单地把“ASR + LLM + TTS”三个接口串起来,而是一个面向实时语音交互的智能体系统。它既要处理语音信号,又要管理对话逻辑,还要响应业务动作。

1.2 Voice Agent 在企业级项目中的典型场景

语音交互天然适合那些“双手不方便操作屏幕”或“操作效率优先于输入效率”的场景。在企业级项目中,Voice Agent 最常见的落地区域包括:

场景典型需求为什么适合 Voice Agent
客服中心用户来电咨询、报障、办理业务减少人工坐席压力,7×24 小时可用
智能外呼回访、通知、营销触达批量任务效率高,通话数据可记录
企业内部助理查考勤、查库存、提交审批语音输入比系统里点菜单更快
车载 / 穿戴设备导航、播放、提醒不影响驾驶或视线,交互自然
线下门店 / 大屏语音导览、问答、营销互动提升体验感,降低操作门槛
医疗 / 金融预约、信息确认、合规问答减少人工录入错误,话术可统一管控

企业级 Voice Agent 和普通 Demo 最大的区别在于:不仅要“能对话”,还要做到低延迟、可监控、可回退、可审计、权限可控,并且能够接入现有业务系统。

1.3 为什么要专门写这样一篇实战分析

我观察到很多开发者学习 Agent 智能体时,走的是“先看概念,再跑 Demo,然后卡在工程化”这条路。看文章时觉得 LLM 很强大,自己写代码时却发现:语音识别的结果不稳定、上下文一长就乱、TTS 播报太生硬、并发一高服务就挂、日志不完整导致线上问题没法排查。

这些都不是单个算法问题,而是系统设计问题。因此这篇文章不只是介绍“怎么调用 ASR/LLM/TTS”,而是把企业级 Voice Agent 的核心链路、代码结构、问题排查和工程化建议放在一起讲,让读者知道自己的项目处在哪个阶段,下一步该往哪个方向优化。

2. 环境准备与版本说明

2.1 开发环境

本文实战部分以 Python 为例,因为语音处理和大模型生态在 Python 中最为成熟。版本需要根据你的项目实际情况调整,本文示例以常见环境为例,重点演示配置思路。

  • 操作系统:Windows 10/11、Ubuntu 20.04/22.04、macOS 均可
  • Python:3.9 及以上(建议 3.10 或 3.11)
  • 包管理工具:pip 或 conda
  • IDE:推荐 VS Code 或 PyCharm
  • 麦克风:需要调试实时语音时使用;如果没有麦克风环境,可以先使用音频文件测试

2.2 依赖库安装

实战 Demo 中我们会用到几个关键库:

pip install SpeechRecognition pyttsx3 openai pyaudio

简单说明各库的作用:

  • SpeechRecognition:提供音频采集和多种语音识别后端接入能力,示例中我们主要用麦克风录音和在线识别接口。
  • pyttsx3:一款本地离线语音合成库,跨平台支持,适合快速验证 TTS 流程。
  • openai:官方 Python SDK,用于调用兼容 OpenAI 协议的大模型接口。
  • pyaudio:用于麦克风采集音频,Windows 下建议通过pip install pipwin后安装预编译包,Linux 下可能需要安装portaudio开发库。

如果pyaudio安装失败,可以先跳过它,采用“读取音频文件 + 文档测试”的方式运行 Demo,不影响对整体代码结构的理解。

2.3 外部服务准备

Voice Agent 实战中至少需要准备一个语音识别服务和一个大模型服务。示例中我们会用到 Google Speech Recognition 作为默认 ASR 后端,但在国内网络环境下,这部分可能需要相应调整,建议替换为可访问的云端 ASR 服务,比如阿里云智能语音交互、讯飞开放平台、腾讯云 ASR,或者本地部署的开源方案如 FunASR、WeNet。大模型部分可以使用 OpenAI 兼容接口,也可以替换为其他兼容服务。

需要注意:不同 ASR 服务的语言模型、采样率、音频格式要求不同,接入时以官方文档为准。本文示例核心逻辑不绑定具体厂商,大家可以按需替换。

3. 核心技术链路拆解

3.1 语音识别 ASR:从声音到文字

ASR 是 Voice Agent 的“耳朵”。它的目标是把一段连续语音信号转换成文本。企业级 ASR 一般需要关注:

  • 中文普通话、方言、中英混说的识别准确率
  • 实时识别时延
  • 长音频的截断与拼接
  • 专业词汇(人名、地名、产品名)的定制优化
  • 噪声环境下(车内、门店、电话线)的鲁棒性

从架构上看,ASR 可以有几步工作:

音频采集 -> 端点检测(VAD) -> 音频编码/降噪 -> 语音识别模型 -> 文本后处理

在代码层面,我们通常只需要调用 ASR 服务或模型即可,但需要关心两个关键参数:

  • language:识别语言,例如zh-CN。
  • timeout和phrase_time_limit:控制单次录音的等待时长和最长时间。

3.2 大语言模型与 Agent 编排

LLM 是 Voice Agent 的“大脑”。在对话式智能体中,LLM 不只是生成文本,还要承担以下职责:

  • 理解用户当前意图。
  • 结合多轮上下文判断是否需要追问。
  • 决定是否调用外部工具(查数据库、发工单、查天气)。
  • 生成最终自然语言回复。

Agent 编排则有多种形态:

  • 简单形态:LLM 直接根据对话历史回复。
  • 工具调用形态:LLM 输出结构化工具调用参数 -> 执行工具 -> 把工具结果带回给 LLM。
  • RAG 形态:根据用户问题检索知识库 -> 拼接上下文 -> 生成回答。
  • 流程型形态:LLM 作为路由,将用户分流到固定业务流程状态机。

在企业级 Voice Agent 中,Agent 编排往往需要和业务系统深度绑定。比如用户说“我要改一下预约时间”,Agent 内部可能先完成“用户身份确认 -> 查询订单状态 -> 校验可改时间 -> 执行改期操作”等多个步骤,再返回结果。

3.3 语音合成 TTS:从文字到声音

TTS 是 Voice Agent 的“嘴巴”。一个合格的语音助理,声音需要自然、清晰,并且支持语速调节、情绪控制、打断时快速停止。

目前的 TTS 方案大致分为:

  • 传统拼接式 TTS:声音稳定但自然度有限,现在逐渐被神经 TTS 替代。
  • 神经 TTS 模型(如 VITS、CosyVoice、ChatTTS):自然度较高,可以根据文本情感调整语调。
  • 云端 TTS:调用各大云厂商的 API,音色丰富,维护成本低。
  • 本地 TTS:在自有服务器上部署模型,适合数据敏感场景,但需要 GPU 或优化推理性能。

代码层面,TTS 最简单的实践就是text -> audio。但在 Voice Agent 中还需要考虑:是否支持流式返回、是否支持打断(新的输入到来时立即停止当前播报)、以及多音字和数字读法的校正。

3.4 VAD、打断与状态管理

很多初次开发语音智能体的人会忽略 VAD(Voice Activity Detection,语音活动检测)和打断机制。

VAD 的作用是判断用户是否开始说话、何时结束说话。好的 VAD 可以在用户开口前就自动开始录音,在用户停顿后自动结束录音,从而提升交互体验。

打断机制则是指:当 TTS 正在播报时,用户突然说话,系统需要立即停止播报并开始新一轮识别。这个机制能显著提升“对话感”,但也带来了状态管理复杂度。

一个完整的 Voice Agent 会话状态通常包括:

IDLE(空闲) -> LISTENING(聆听) -> PROCESSING(处理中) -> SPEAKING(播报中) -> IDLE

状态转换时需要处理超时、异常、用户打断等情况。中大型项目中,建议用状态机或明确的状态枚举来实现,而不是散落在各处 if-else 中。

3.5 全链路串起来之后的挑战

把 ASR、LLM、TTS 简单拼起来以后,就会遇到几个典型问题:

  1. 端到端延迟过高。用户说完话要等好几秒才有反应,体验很差。
  2. 断句不合理。ASR 把用户的一句话断成两段,导致 LLM 理解错误。
  3. TTS 播报时被新输入打断,状态不一致。
  4. 多轮对话没有记忆,用户前面说过的信息后面又重复问。
  5. 日志分散在多个服务中,线上问题无法定位。

这些问题说明:Voice Agent 的难点不在单个 AI 接口,而在于系统的整体架构设计和工程化能力。

4. 完整实战:从零搭建一个企业级 Voice Agent 原型

下面我们用一个可运行的 Python Demo,把“麦克风采集 -> ASR -> LLM -> TTS -> 播放”全链路串起来。这个 Demo 的核心代码简洁清晰,接口层预留了替换空间,后续可以替换成任意企业级 ASR/LLM/TTS 服务。

4.1 项目结构说明

voice-agent-demo/ ├── main.py # 主流程,负责循环调度 ├── asr_module.py # 语音识别模块 ├── agent_module.py # LLM Agent 模块 ├── tts_module.py # 语音合成模块 └── requirements.txt # 依赖清单

4.2 编写 ASR 模块

首先创建asr_module.py。这个模块负责录音和语音转文字。

# 文件路径:asr_module.py import speech_recognition as sr class ASREngine: def __init__(self, language="zh-CN"): self.recognizer = sr.Recognizer() self.language = language def recognize_from_microphone(self): """ 从麦克风采集一段语音,并转换为文字。 返回识别到的文本;如果没有识别到内容,返回 None。 """ with sr.Microphone() as source: print("正在聆听,请开始说话...") # 自动校准环境噪音,提升识别准确率 self.recognizer.adjust_for_ambient_noise(source, duration=0.5) try: audio = self.recognizer.listen( source, timeout=5, phrase_time_limit=10 ) except sr.WaitTimeoutError: print("没有检测到语音") return None try: # 这里默认使用 Google Speech Recognition 免费接口 text = self.recognizer.recognize_google(audio, language=self.language) return text except sr.UnknownValueError: print("无法识别音频内容") return None except sr.RequestError as e: print(f"识别服务请求失败: {e}") return None

这段代码的关键点在于:

  • adjust_for_ambient_noise:自动降噪,避免背景音干扰。
  • listen(source, timeout, phrase_time_limit):timeout表示等待语音开始的超时时间,phrase_time_limit表示单次语音的最大长度。
  • recognize_google:这里只是演示,实际项目可以替换为阿里云、讯飞、腾讯云等 ASR 服务。

如果要在离线环境下测试,也可以把sr.Microphone()换成读取音频文件的方式,核心接口保持一致。

4.3 编写 LLM Agent 模块

创建agent_module.py,这里使用 OpenAI SDK 调用大模型接口。只要接口兼容 OpenAI 协议,就可以很容易替换为不同的模型服务。

# 文件路径:agent_module.py from openai import OpenAI class VoiceAgent: def __init__(self, api_key, base_url, model="gpt-4o-mini"): self.client = OpenAI(api_key=api_key, base_url=base_url) self.model = model self.system_prompt = ( "你是一个专业的语音助手。请用简洁、自然的中文回答用户问题。" "回复内容适合语音播报,不要使用 Markdown 符号。" ) def chat(self, user_text): """ 根据用户输入生成回复。 这里可以扩展为带工具调用、记忆、RAG 的 Agent。 """ try: response = self.client.chat.completions.create( model=self.model, messages=[ {"role": "system", "content": self.system_prompt}, {"role": "user", "content": user_text} ], temperature=0.3, max_tokens=300 ) return response.choices[0].message.content.strip() except Exception as e: print(f"LLM 调用失败: {e}") return "抱歉,我暂时无法回答这个问题。"

实际企业级场景中,chat方法内部往往不会这么简单。你可以在这里继续扩展:

  • 多轮上下文:把历史消息保存在messages列表中。
  • 工具调用:让模型输出结构化 JSON,然后执行对应函数。
  • 知识库检索:先根据用户问题检索向量数据库,再把相关内容拼入上下文。

但无论怎么扩展,“输入文字 -> 返回文字”的接口边界可以保持不变,这样后续替换服务时主流程不需要改动。

4.4 编写 TTS 模块

创建tts_module.py,使用pyttsx3本地语音合成。

# 文件路径:tts_module.py import pyttsx3 class TTSEngine: def __init__(self, rate=180, volume=1.0): self.engine = pyttsx3.init() self.engine.setProperty("rate", rate) self.engine.setProperty("volume", volume) def speak(self, text): """ 将文本转为语音并播放。 """ try: self.engine.say(text) self.engine.runAndWait() except Exception as e: print(f"TTS 播报失败: {e}")

如果你想换成更自然的云端 TTS,只需要保证speak(text)方法对外接口不变。比如流式 TTS 可以改成把音频块边接收边播放,或者先下载到本地播放。

4.5 编写主流程

创建main.py,把三个模块串起来。

# 文件路径:main.py from asr_module import ASREngine from agent_module import VoiceAgent from tts_module import TTSEngine def main(): # 初始化各模块 asr = ASREngine(language="zh-CN") tts = TTSEngine(rate=180, volume=1.0) agent = VoiceAgent( api_key="your-api-key", base_url="https://api.openai.com/v1", model="gpt-4o-mini" ) print("语音智能助理启动成功,按 Ctrl+C 退出") while True: try: user_text = asr.recognize_from_microphone() if not user_text: continue print(f"用户: {user_text}") answer = agent.chat(user_text) print(f"助理: {answer}") tts.speak(answer) except KeyboardInterrupt: print("退出语音智能助理") break if __name__ == "__main__": main()

4.6 运行与验证

在命令行中执行:

python main.py

正常情况下,程序会先播放一行提示文案,然后启动麦克风录音。你说完话后,程序会打印出识别文本,再调用大模型生成回复,最后通过本地 TTS 播放回答。

这个流程虽然简单,但它验证了一个 Voice Agent 最核心的闭环:语音 -> 文字 -> 意图处理 -> 文字 -> 语音。在此基础上,你可以逐步增加多轮记忆、工具调用、知识库、打断、流式播报等能力。

如果运行过程中麦克风采集失败,可以先用音频文件测试 ASR 模块,比如在asr_module.py中临时将sr.Microphone()替换为sr.AudioFile("test.wav"),确保后面的 LLM 和 TTS 链路正常工作。

5. 常见问题与排查思路

5.1 启动和运行中的典型问题

问题现象常见原因解决思路
pyaudio安装失败缺少 portaudio 或编译环境Linux 执行sudo apt-get install portaudio19-dev;Windows 使用预编译 wheel
麦克风没有声音录入系统未授权麦克风,或采样率不匹配检查系统麦克风权限;使用sr.Microphone.list_microphone_names()检查设备
ASR 识别结果为空环境噪音过大,或recognize_google网络不可用调整adjust_for_ambient_noise;更换 ASR 服务
LLM 调用超时API Key 无效、网络不通、模型名错误检查接口地址和模型名;在代码中打印异常详情
TTS 播放卡顿或无声缺少语音引擎依赖,如 espeakLinux 安装espeak;macOS 首次运行授予权限
多轮对话答非所问没有维护对话历史,每次请求都是独立上下文在 Agent 模块中保存 messages 历史列表
播报无法打断没有做状态管理和流式播放引入 VAD 和打断机制,TTS 播放时监听新语音

5.2 三个高频问题的详细排查

问题一:pyaudio安装失败

这个问题的原因比较多。Windows 上可以尝试:

pip install pipwin pipwin install pyaudio

Ubuntu 上则先安装系统依赖:

sudo apt-get update sudo apt-get install portaudio19-dev python3-pyaudio

如果还是失败,可以先用sounddevice库替代采集方案,避免因为音频采集依赖卡住整体流程。

问题二:recognize_google识别不准确或报错

recognize_google是免费接口,适合功能演示,不适合生产环境。报错通常是因为网络不通或音频太短。你可以快速验证:先读取一个准备好的语音文件,把音频路径写死,看能不能正常识别文字。这样可以区分是音频采集问题还是识别服务问题。

问题三:模型输出包含 Markdown 符号,不适合语音播报

大模型默认生成的文本可能包含**、#、-等 Markdown 标记,TTS 读出来会非常奇怪。解决方案有两种:

  1. 在 System Prompt 中显式声明“输出内容不要包含 Markdown 或特殊符号,用纯文本回复”。
  2. 在 TTS 播报前做文本后处理,去除特殊符号。
import re def clean_text_for_tts(text): # 去除 Markdown 常用标记,并按实际需要保留标点 text = re.sub(r"[*#`>_~\[\]()]", "", text) return text.strip()

6. 工程化最佳实践与安全边界

6.1 延迟优化

Voice Agent 的体验与端到端延迟强相关。业界比较理想的目标是“说完话后 1 秒内开始有回应”,也就是从 ASR 识别出结果,到 TTS 开始播放第一个音频块,整体耗时控制在 800ms-1500ms 左右。

优化路径如下:

  • ASR 使用流式识别,而不是等整段语音结束后再识别。
  • LLM 使用流式输出,让 TTS 能够快速拿到第一批生成的文本。
  • TTS 使用流式合成,边合成边播放,避免等整段音频生成完。
  • 网络层尽量减少串行调用,例如用户识别和上下文检索可以并行。
  • 模型层面可以采用更小的 ASR 模型和 TTS 模型,或在 GPU 上做推理加速。

6.2 数据与安全

语音数据属于敏感数据,尤其是客服、医疗、金融场景。在企业级项目中,必须注意以下几点:

  • 音频数据默认加密存储,避免明文落盘。
  • ASR 转写文本、对话记录要按最小权限原则控制访问。
  • 调用外部 ASR/LLM 服务前,确认是否符合企业内部数据合规要求。
  • 涉及用户身份、订单信息时,Agent 需要先完成认证授权再操作。
  • 不要在生产环境日志中打印完整语音文本或用户个人信息。
  • 删除数据时,要同时清理音频文件和转写文本,避免残留。

这里的核心原则是:语音智能体接触到的信息比普通文本聊天更敏感,因为语音包含声纹、情绪、环境信息,一旦泄露风险更大。

6.3 可观测性与评测

一个 Voice Agent 上线前,不仅要测“它答得对不对”,还要测“整个语音链路是否稳定”。建议在系统中埋点记录:

  • 每轮对话的 ASR 识别文本和置信度。
  • LLM 调用耗时和 token 消耗。
  • TTS 合成耗时和播报时长。
  • 端到端延迟分布。
  • 用户打断次数、超时次数、空识别次数。

评测阶段可以采用离线指标和线上指标结合的方式。离线指标包括对话任务完成率、关键信息准确率、错误回复率、延迟百分位;线上指标包括用户留存、任务转化率和人工介入率。

6.4 成本控制

Voice Agent 的成本主要由三部分构成:

  • ASR 服务费用,按音频时长或调用次数计费。
  • LLM Token 消耗,提示词越长、功能越复杂,成本越高。
  • TTS 服务费用,按合成字符数或音频时长计费。

控制成本的手段包括:

  • 对 ASR 识别的文本做缓存,相同问题命中缓存时直接返回。
  • 精简 System Prompt,避免每次都拼接过长上下文。
  • 简单意图(如“你好”“再见”)不调用大模型,直接用规则回复。
  • 在低峰期使用批量离线处理,避免高峰期并发计数过高。

7. Agent 智能体学习路线与实战建议

7.1 学习路线设计

如果你想系统掌握 Voice Agent 和 Agent 智能体开发,建议按照下面六个阶段推进。每个阶段 2-4 周,根据个人基础适当调整。

阶段一:Python 编程与大模型 API 基础

  • Python 基础语法、文件读写、异常处理、虚拟环境。
  • 熟悉 HTTP 请求和 REST API。
  • 完成一次简单的 LLM 调用:写一个脚本,输入文本得到回复。

阶段二:提示词工程与对话系统

  • System Prompt、Few-shot、思维链。
  • 多轮对话 Context 管理。
  • 常见 Prompt 陷阱:幻觉、上下文丢失、格式不稳定。

阶段三:Agent 与工具调用

  • Function Calling 原理与代码实现。
  • 把外部 API 封装成 Agent 工具。
  • 自己实现一个“查天气 -> 提醒穿衣”的小 Agent。

阶段四:RAG 与知识库

  • 文本向量化与向量数据库。
  • 检索、重排、拼接上下文。
  • 搭建一个基于自身文档的问答机器人。

阶段五:语音能力接入

  • ASR 选型与代码接入。
  • TTS 选型与流式播报。
  • VAD、打断、会话状态机。
  • 把之前的文本 Agent 升级为 Voice Agent。

阶段六:工程化与部署

  • FastAPI 封装服务接口。
  • WebSocket 实时通信。
  • Docker 部署与日志采集。
  • 安全、限流、监控、压测。

7.2 学习资料推荐

学习资料贵精不贵多。下面这些方向都值得花时间:

  • 大模型接口文档:OpenAI、通义千问等官方 API 文档,重点看 chat completions 和 function calling。
  • Agent 开发框架:LangChain、LlamaIndex 官方文档;国内生态可关注 Dify、Coze,但要注意理解底层原理,不能只停留在拖拽配置。
  • 语音开源项目:FunASR(阿里开源的中文语音识别工具包)、WeNet(端到端语音识别工具)、Coqui TTS、CosyVoice,适合深入语音方向。
  • 系统设计:《Designing Data-Intensive Applications》中与消息队列、状态管理、容错相关章节,对理解实时交互系统有帮助。
  • 论文阅读:可以先从 “Toolformer”“ReAct”“Function Calling” 相关论文入手,理解 Agent 工具调用的来龙去脉。

7.3 关于 1V1 规划的建议

很多同学会问“要不要找 1V1 规划”。合理的学习规划确实有用,重点是规划者能不能根据你的技术背景、时间投入和目标岗位,拆出明确的阶段成果。

典型的三类背景可以参考以下方向:

你的背景建议切入方式重点补什么
应届生/在校生先学 Python + LLM API + Agent 基础,再做语音 Demo数据结构、HTTP、基础算法、简单部署
后端开发转型 AI 应用以 API 集成和工程架构为切入点,做企业级 Voice Agent 服务流式通信、异步编程、服务治理、大模型接口细节
产品/测试转 AI 应用先熟悉提示词、Agent 工具调用、RAG,再补轻量代码能力Prompt 评测、Agent 流程设计、语音交互体验优化

一套好的 1V1 规划不是“给你一份视频清单”,而应该包含:每周要完成的代码任务、对应的验收标准、常见卡点说明和项目集。不要只看完成了多少课程,要看你是否独立跑通了一个又一个闭环。

7.4 从学习到落地的核心提醒

最后想提醒各位:学习 Voice Agent 和 Agent 智能体,不要停留在“调用接口”的层面。面试和项目中真正拉开差距的地方,往往是你对以下问题的理解深度:

  • 怎么保证多轮对话不丢上下文?
  • 用户打断时,系统状态如何恢复?
  • LLM 调用工具失败,回退策略是什么?
  • 如何评测一个语音智能体做得好不好?
  • 生产环境出现问题,怎么快速定位?

这些问题的答案,只能从动手搭建和反复调试中获得。建议你本周就做一个最小闭环:用麦克风对着电脑说一句话,让 Agent 回复并读出来。先跑通,再去优化延迟、加工具调用、加知识库,一点点把原型打磨成企业级系统。

后续我会继续拆解语音智能体的流式架构、RAG 接入、工具调用、上线运维等主题。如果这篇文章对你有帮助,可以收藏备用,也欢迎在评论区聊聊你在做 Voice Agent 时遇到的问题。

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

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

立即咨询