让AI知识触手可及

首页 » 【产品体验】豆包大模型实时语音本地化部署及功能体验

背景

2025年1月21日,豆包实时语音大模型在豆包App(7.2.0 新春版)全量开放,引发了广泛关注。这一语音交互体验,与OpenAI公布的GPT-4o模型实时语音功能体验类似,未来拥有广阔的应用前景。

因此,本章我们深入了解豆包实时语音大模型的使用过程,并分析其背后的实现原理。

目标

基于豆包开源的Github代码,在本地搭建一个实时语音大模型,并体验其效果。

搭建过程

豆包大模型的背后支持团队 火山引擎 提供了开源代码Demo,我们基于该项目进行相关部署实践。

1. 拉取代码

git clone https://github.com/volcengine/rtc-aigc-demo

2. 注册账号

访问火山引擎官网(https://www.volcengine.com/) ,注册账号并登录。

说明:
首次注册火山引擎账号并使用,需要进行实名认证,按照官网提示完成即可。

3. 准备工作

3.1 获取API Key

  1. 访问火山引擎控制台https://console.volcengine.com/home

  2. 点击右上角个人头像->API访问密钥

  3. 新建密钥

说明:

  • 火山引擎API密钥分主账号和子账号,一般为了安全情况下,使用子账号。
  • 本例中优先跑通流程,所以安全性要求不高,使用主账号减少操作步骤。
  1. 点击继续后,使用手机获取验证码,即可完成API Key创建。

3.2 开通 RTC 服务(获取AppID和AppKey)

  1. 访问火山引擎控制台的 实时音视频 https://console.volcengine.com/rtc/guide

  2. 申请开通 RTC 服务

  3. 创建应用:点击左侧应用管理->创建应用

说明:

  • 默认情况下,开通RTC服务后,会自动创建一个默认应用,本例中使用默认应用。
  • 如果需要创建新应用,则需要填写应用名称、应用描述、应用类型、应用场景、应用权限等信息。
  1. 获取应用AppID和AppKey:复制默认应用的AppID和AppKey,后续配置中需要使用。

3.3 获取临时Token

  1. 接着上一步的步骤,在页面中点击临时Token

  2. 在弹出的页面中,输入自定义的RoomIdUserId,点击生成临时Token

说明:

  • RoomId 可以自定义,本例中命名为my_demo_room
  • UserId 可以自定义,本例中命名为my_demo_user
  1. 获取临时Token后,复制Token,后续配置中需要使用。

3.4 开通 ASRTTS 服务服务

  1. 访问火山引擎控制台的 语音技术 https://console.volcengine.com/speech/app
  2. 创建应用:点击左侧应用管理->创建应用
  3. 根据提示,填写应用名称、应用简介,勾选语音合成、流式语音识别服务。

  1. 创建应用后,获取应用的APP ID,后续配置中需要使用。

3.5 开通 火山方舟2.0模型

由于后续对话中,需要使用到大模型,我们可以按需使用第三方的大模型,也可以使用火山方舟提供的模型。

以下是火山方舟提供的模型开通方式:

  1. 访问火山引擎控制台的 火山方舟 https://console.volcengine.com/ark

  2. 点击左侧在线推理->创建推理接入点

  3. 配置推理接入点基础信息

  4. 添加模型后,选择右侧的确认接入

说明:
此处按照官方文档,我们选择了Doubao-pro-4k模型,读者可按需选择配置。

  1. 获取接入点信息,后续配置中需要使用。

3.6 配置策略

  1. 访问主账号控制台 https://console.volcengine.com/rtc/guide

  2. 点击右上角头像之后,选择访问控制

  3. 新建角色

  4. 选择服务:实时音视频

  5. 设置角色名为:VoiceChatRoleForRTC

说明:
在火山引擎官网文档中,提到该角色名必须为VoiceChatRoleForRTC

  1. 添加 SAFullAccessMaaSExperienceAccessRTCFullAccess 权限,且权限作用范围选择全局

4. 修改配置

4.1 配置前端页面参数

代码路径:src/config/config.ts

export class ConfigFactory {
  BaseConfig = {
    /**
     * @note 必填, RTC AppId 可于 https://console.volcengine.com/rtc/listRTC 中获取。
     */
    AppId: '6793xxxxxxx',
    /**
     * @brief 非必填, 按需填充。
     */
    BusinessId: undefined,
    /**
     * @brief 必填, 房间 ID, 自定义即可。
     */
    RoomId: 'my_demo_room',
    /**
     * @brief 必填, 当前和 AI 对话的用户的 ID, 自定义即可。
     */
    UserId: 'my_demo_user',
    /**
     * @brief 必填, RTC Token, 由 AppId、RoomId、UserId、时间戳等等信息计算得出, 可于 https://console.volcengine.com/rtc/listRTC 列表中
     *        找到对应 AppId 行中 "操作" 列的 "临时Token" 按钮点击进行生成, 用于本地 RTC 通信进房鉴权校验。
     * @note 生成临时 Token 时, 页面上的 RoomId / UserId 填的与此处的 RoomId / UserId 保持一致。
     *       正式使用时可通参考 https://www.volcengine.com/docs/6348/70121 通过代码生成 Token。
     */
    Token: '0016793234865fxxxxxx',
    /**
     * @brief 必填, TTS(语音合成) AppId, 可于 https://console.volcengine.com/speech/app 中获取, 若无可先创建应用。
     * @note 创建应用时, 需要选择 "语音合成" 服务, 并选择对应的 App 进行绑定。
     */
    TTSAppId: '67884xxxx',
    /**
     * @brief 必填, ASR(语音识别) AppId, 可于 https://console.volcengine.com/speech/app 中获取, 若无可先创建应用。
     * @note 创建应用时, 需要按需根据语言选择 "流式语音识别" 服务, 并选择对应的 App 进行绑定。
     */
    ASRAppId: '67884xxxx',
  };

说明:

  • AppId 对应3.2 开通RTC服务中获取的AppId
  • RoomId 对应3.3 获取临时Token中获取的RoomId
  • UserId 对应3.3 获取临时Token中获取的UserId
  • Token 对应3.3 获取临时Token中获取的Token
  • TTSAppIdASRAppId 对应3.4 开通TTS服务中获取的APP ID

4.2 配置后端服务参数

代码路径:Server/app.js


/**
 * @notes 在 https://console.volcengine.com/iam/keymanage/ 获取 AK/SK
 */
const ACCOUNT_INFO = {
  /**
   * @notes 必填
   */
  accessKeyId: 'AKLTMmM3YTxxxx',
  /**
   * @notes 必填
   */
  secretKey: 'TVRWa04yxxxxx',
  /**
   * @notes 非必填, 主账号无须传入, 子账号须传, 获取方式可参考
   * https://www.volcengine.com/docs/6348/1315561 中的 步骤 4-使用子账号调用智能体接口 一节
   */
  // sessionToken: 'Your SessionToken',
}

说明:

  • accessKeyId 对应3.1 获取API Key中获取的accessKeyId
  • secretKey 对应3.1 获取API Key中获取的secretKey

4.3 配置大模型

代码路径:src/config/common.ts


/**
 * @brief 豆包模型的 ID
 * @note 具体的模型 ID 请至 https://console.volcengine.com/ark/region:ark+cn-beijing/endpoint 参看/创建
 *       模型 ID 即接入点 ID, 在上述链接中表格内 "接入点名称" 列中, 类似于 "ep-2024xxxxxx-xxx" 格式即是模型 ID。
 */
export const ARK_V3_MODEL_ID: Partial<Record<AI_MODEL, string>> = {
  [AI_MODEL.DOUBAO_LITE_4K]: '**************   此处填充方舟上的模型 ID *************',
  [AI_MODEL.DOUBAO_PRO_4K]: 'ep-xxxxx',
  [AI_MODEL.DOUBAO_PRO_32K]: '**************   此处填充方舟上的模型 ID *************',
  [AI_MODEL.DOUBAO_PRO_128K]: '**************   此处填充方舟上的模型 ID *************',
  [AI_MODEL.VISION]: '**************   此处填充方舟上的模型 ID *************',
  // ... 可根据所开通的模型进行扩充
};

说明:

  • ARK_V3_MODEL_ID 对应3.5 开通火山方舟2.0模型中获取的接入点

5. 准备运行环境

5.1 安装nodejs

  1. 访问https://nodejs.cn/download/
  2. 按照页面提示下载Node.js到本地后进行安装

5.2 安装yarn

安装yarn的教程网上很多,这里不详细展开,只展示Mac下的命令,请读者按需自行搜索。

brew install yarn

6. 运行代码

6.1 运行后端服务

# 切换至代码路径下的Server目录
cd Server

# 安装依赖
yarn

安装完毕上述依赖后,执行以下命令,运行后端服务。

# 运行后端服务
node app.js

运行结果:

6.2 运行前端服务

新创建一个terminal,执行以下命令,运行前端服务。

# 切换至代码根目录

# 运行前端服务
yarn dev

运行结果:

体验效果

启动前端页面后,浏览器会自动打开http://localhost:3000/,点击通话按钮,即可体验实时语音大模型。

体验效果

体验感受:

  • 整体体验流畅,对话沟通非常流畅,AI的语音比较自然。
  • 可以进行多轮对话,不需要通过类似"小爱同学"的唤醒词来触发对话,这一点未来在智能问诊、智能客服等场景中,可以大大提升用户体验。
  • 对话过程中,可以随时打断AI的回答。(打断效果还有微小瑕疵,需要声音大一点才可以打断)

总体来说,豆包大模型的实时语音体验非常流畅,已经可以媲美OpenAI的GPT-4o模型实时语音体验。
人工智能的进一步落地应用,值得期待。

示例代码解读

1. 技术原理

说明
以上技术框架图来源于火山引擎官方文档,读者可参考https://www.volcengine.com/docs/6348/1310537 查看。

2. 客户端

(待补充)

3. 服务端

(待补充)

总结

  • 豆包大模型提供了实时语音功能,火山引擎官方提供了开源代码Demo,可以快速本地部署体验
  • 部署方法:
      1. 注册火山引擎账号,开通RTC、TTS、ASR、火山方舟2.0模型服务
      1. 在代码中配置AppId、RoomId、UserId、Token、TTSAppId、ASRAppId等参数
      1. Demo代码是基于Node.js实现,需要安装nodejs、yarn
      1. 依赖安装完毕后,按照Readme中命令分别启动后端服务和前端页面即可
  • 体验感受:
    • 整体体验流畅,对话沟通非常流畅,AI的语音比较自然。
    • 可以进行多轮对话,不需要通过类似"小爱同学"的唤醒词来触发对话,这一点未来在智能问诊、智能客服等场景中,可以大大提升用户体验。
    • 对话过程中,可以随时打断AI的回答。(打断效果还有微小瑕疵,需要声音大一点才可以打断)
    • 总体来说,豆包大模型的实时语音体验非常流畅,已经可以媲美OpenAI的GPT-4o模型实时语音体验。
    • 人工智能的进一步落地应用,值得期待。
声明:一起AI技术所有文章,如无特殊说明或标注,均为本站作者原创发布。任何个人或组织,在未征得作者同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。
原创不易,内容版权受保护,感谢您的尊重与支持。
0 0 投票数
Article Rating
订阅评论
提醒
guest的头像
0 评论
内联反馈
查看所有评论
Picture of Dongming
Dongming
见天地,见众生,见自己。

分类文章

推荐活动

推荐文章

【产品体验】DeepSeek的三种接入使用方法
【论文简读】DeepSeek LLM:以长远主义拓展开源语言模型
【产品体验】趋动云上使用LLaMaFactory进行模型微调的流程体验
【课程总结】day24(上):大模型三阶段训练方法(LLaMa Factory)
【项目实战】通过LLaMaFactory+Qwen2-VL-2B微调一个多模态医疗大模型
【模型训练】在AutoDL上使用LLamaFactory进行模型训练
AI大模型时代,人才的需求已经变了
【项目实战】基于esp32开发板+大模型实现的陪伴助手-硬件篇
【项目实战】基于esp32开发板+大模型实现的语音助手-软件篇
【模型部署】在趋动云上使用vllm部署模型
0
希望看到您的想法,请您发表评论x
滚动至顶部