【干货教程】让AI替你打电话,解锁AI电话员工,实时语音,智能打断,真人体感!

大模型云通信数据库

来了!小伙伴们,初心不改 教程依旧,咱们的每月干货教程虽迟但到!特别的是这次的教程终于是我们团队小伙伴写的了!

这次给大家带来的是我们团队开发的项目demo,能够把AI智能体接入到电话中,让用户通过电话进行沟通。

与手机上自带的AI助手不同,这是完全自主可控的智能体接入,你可以自由的为智能体配备知识库和工具,让AI电话助手真正的能为你所有且为你所用。

我们先看效果:

可实现在用户说话时,随时打断ai说话、模拟真人对话节奏,并且具有很好的扩展场景,比如接入到电话中,成为你的ai电销助手、同声传译、智能家居语音控制、健康咨询等。

整个项目并不难,只要跟着教程就可以完成,一共四个步骤:

1、环境安装,代码部署

2、项目配置,账号注册

3、启动项目,搭建语音机器人

4、接入电话,完成。

  • 注意:接入电话这一步骤是需要有企业才可以申请线路的。不过如果只想体验动手的快乐,那么可以忽略接入电话,先自己搭建一个在电脑上的语音问答机器人。

本次教程由我们团队小伙伴完成,

创作不易,建议大家收藏、点赞、加关注,给他点鼓励picture.image

话不多说,开始教程

(教程已同步在通往AGI之路飞书知识库,点击底部的阅读原文可以跳转查看)


本项目可以在服务器上长期运行,也可以在个人电脑(windows、mac)上进行搭建、体验。本文主要以windows电脑为例。


   
  `0
 1
 
 
 
 
 
 
 
 
 
 
 
 
 安装node
 
 
 
 
 
 
 
 
 
 
 
 
 
 如果要在服务器上运行,则可以使用命令行拉取:sudo apt install nodejs npm
 
 
 
 
 
 
 
 
 
 
 如果要在自己电脑上运行,下载地址:https://nodejs.org/zh-cn/download选择你的电脑系统后,点击安装程序按钮开始下载。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 下载node js
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 安装过程与安装其他软件类似,注意不要安装在C盘即可。安装可能会有点慢,安装过程中继续往下走,不用刻意等安装完成。安装完成后会有【Type ENTER to exit:】的字样。
 
 
 
 
 
 
 
 
 
 
 
 
 
 安装nodejs` 
 

02

下载及运行项目

2.1、项目内容介绍

项目分为两部分:

1、声网token的获取、更新(后端程序)

2、网页(前端)

项目下载,下载地址( 项目下载时,可以先继续往下进行,后续会用到):

https://github.com/15093083169/Agora\_AI/archive/refs/heads/main.zip

2.2、注册声网账号,前期准备

2.2.1、前往声网:

https://console.shengwang.cn,前往链接进行注册、登录、个人认证。

2.2.2、认证完成后:

https://console.shengwang.cn/settings/projects,前往链接,新建一个项目。

picture.image

项目类型选择通用项目项目名称取一个方便区分的即可。场景标签选择【其他】鉴权机制选择【安全模式:app id +token】开启【开通RTM】开启【开通即时通讯IM】

2.2.3、创建完成后:

https://console.shengwang.cn/product/ConversationAI?tab=config,前往链接,点击开通服务,在弹出窗口点确认。

picture.image

picture.image


2.3、声网token获取。(非必须)

如果是为了尝鲜,可以跳过该流程,查看2.4,会讲获取有效期为一天的token。

如果是为了长期使用,长期获取token,建议走该流程。

2.3.1、获取声网APP ID 和主要证书的值

https://console.shengwang.cn/overview,选择你的项目,复制APP ID和 主要证书的值。

picture.image

2.3.2、解压【步骤2.1时下载的项目】

打开项目文件夹,在token文件夹找到里面的.env文件。(.env文件默认无法打开,可以右键点击打开方式,选择记事本即可)

picture.image

将<your_appid>修改为复制的APP ID的值

将<your_app_Certificate>修改为复制的主要证书的值。

注意: <>也要一起改掉,=后面只有复制的值。修改后需要保存。

2.3.3、运行项目:

①、打开项目文件夹,进入token文件夹,在地址栏输入cmd,回车。

picture.image

②、在弹出的终端中,输入:

npm i

node DemoServer.js

注意:上面的这是两行,每行输入完成后要按回车键。除首次运行外,后续运行,只需要执行第二行命令即可。

picture.image

看到:AgoraSignServer starts at 8081,证明运行成功了。

2.4、网页(前端)

2.4.1、添加密钥

https://console.shengwang.cn/settings/restfulApi,点击添加密钥按钮,添加一个密钥。

picture.image

①、添加完成后,客户密钥会有一个下载按钮,下载你的key和密钥。下载后密钥无法再重新获取,请注意妥善保管。

②、下载后打开,如下图,复制客户ID/key和客户密钥/secret的值。

picture.image

2.4.2、获取APP ID的值

https://console.shengwang.cn/overview,复制APP ID的值。

picture.image

2.4.3、解压【步骤2.1时下载的项目】

打开项目文件夹,进入到web文件夹,找到.env文件。(.env文件默认无法打开,可以右键点击打开方式,选择记事本即可)

picture.image

<your_appid>修改修改为APP ID的值  
将<your_client_id>修改为key的值  
将<your_client_secret>修改为secret的值  
注意: <>也要一起删掉,=后面只有复制的值。修改后需要保存

2.4.4、运行项目

①、进入到web文件夹,在地址栏输入cmd,回车。picture.image

②、在弹出的终端中,输入:

  
npm i  
npm start  
注意:上面的这是两行。每行输入完成后要按回车键。  
除首次运行外,后续运行,只需要执行第二行命令即可。

picture.image

2.4.5、运行成功后可打开浏览器,输入localhost:3000,即可访问。

注意不要用微信浏览器,要用系统的浏览器。

能够访问后继续往下走。接下来我们要配置的内容,都是要在这个页面里进行配置

picture.image


03

项目配置

3.1、声网token

3.1.1、如果你没有按照2.3做,要使用临时token:

https://console.shengwang.cn/overview,前往链接,点击临时token生成器,选择产品RTC,频道名写一个方便区分的。![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/8027bf8033b24adc95bd13cc513c198b~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1754471954&x-signature=mSLeF6CBTE87Ug3iR82upE%2Byv44%3D)

3.1.2、如果你按照2.3做了:

  
选择【后端获取token】  
如果你是在windows电脑上运行,地址我已经预设过了。  
如果是放在服务器上的话,要把localhost改为服务器ip或域名。

picture.image

3.2、llm(大语言模型)

大模型的接入,采用标准化ai的api接入方式。理论上所有平台均可,包括工作流平台、中转站、ai提供商。

picture.image

本文以火山平台的大模型的接入为例,其他平台填入内容的方式一致,各个平台获取方法可能会有差异。

3.2.1、注册、登录、认证

https://console.volcengine.com/ark/ ,如果没有使用过的话,需要先进行注册、登录、认证。

3.2.2、认证完成后:

①、前往在线推理,创建推理接入点:

picture.image

②、接入点名称方便后续区分即可。模型选择,选择你想使用的模型。(模型的速度会影响语音回复的速度,如果希望更快速,可以选择doubao1.5lite)然后点击右侧的开通模型并接入。

picture.image

创建时,如果已经实名认证过了,开通按钮仍然置灰,悬停提示先进行实名认证,刷新页面即可。

③、创建完成后,复制接入点id的值。

picture.image

3.2.3、创建API Key

①、前往API Key管理,创建API Key。

picture.image

②、名称方便后续区分即可。

picture.image

③、创建完成后,先点击apikey后面的小眼睛,使你能看到apikey的值,然后点击复制。获得apikey的值

picture.image

3.2.4、将获取的值写进项目中

回到我们之前打开的网页,将获取到的值输入到对应位置

picture.image

  
API地址:  
https://ark.cn-beijing.volces.com/api/v3/chat/completionsAPI  
密钥:前面复制的'apikey'的值  
模型名称:前面复制的接入点'id'的值  
系统提示词,填入你的'提示词'。  
问候语,ai首次打招呼的话术。

其他平台接入原理也一致,只要获取到对应的api地址、api密钥、模型名称即可。

3.3、VAD(语音活动检测)配置

picture.image

这些参数是对ai灵敏度的参数配置,默认值是我调试后我认为合适的值。每个字段具体含义,在项目中也有气泡解释,悬停可以查看具体介绍。

  
人声持续阈值 (ms):持续检测到人声信号的最小时间长度,人声持续时长超过该数值时视为有声输入,避免误打断。取值120-1200  
前缀填充阈值 (ms):开始新的语音片段所需的最短语音持续时间,避免非常短的声音触发语音活动检测。取值0-5000  
静音持续阈值 (ms):语音结束时的最短静音持续时间,确保短暂的停顿不会过早结束语音片段。取值0-2000  
灵敏度:ai识别人声的灵敏度,越低越灵敏,取值0-1启用  
优雅打断:启用后,会允许用户说话时,打断ai说话

3.4、tts(文本转语音)

我预设好了【火山引擎、腾讯云】的tts模板,可以按照你想用的平台来配置。3.4.1和3.4.2任选其一即可。

3.4.1、火山引擎:

picture.image

1、https://console.volcengine.com/speech,登录认证。

2、在语音合成大模型板块,创建个应用。应用名称方便区分即可,选择服务中,要勾选语音合成大模型,语音合成。

picture.image 3、侧边点击语音合成,获取【APPID、AccessToken、ClusterID】的值。

picture.image

4、语音类型,可以前往https://www.volcengine.com/product/tts,能力体验板块进行试听。选择好合适的音色后,前往

https://www.volcengine.com/docs/6561/1257544,找到你选择的音色所对应的voice\_type的值。

picture.image

把这几个获取到的值,填入到项目中,调整你想要的语速等。点击保存配置。

3.4.2、腾讯tts:

picture.image

  1. https://console.cloud.tencent.com/cam/capi,登录认证。
  2. 新建密钥,获取【APPID、SecretId、SecretKey】,下载后密钥无法再重新获取,请注意妥善保管。

picture.image

picture.image 3. 语音类型,可以前往https://console.cloud.tencent.com/tts/complexaudio进行试听,选择好合适的音色后,前往https://cloud.tencent.com/document/product/1073/92668找到你选择的音色所对应的音色 ID的值。

把这几个获取到的值,填入到项目中,调整你想要的语速等。点击保存配置。

04

开始体验网页ai语音对话:

我们先点击创建智能体,点击创建智能体成功后。再点击开始对话,即可开启与ai对话内容。

  1. 创建智能体,实际是通过声网创建了一个我们与ai对话的通道。这里使用声网的频道连接,会消耗声网资源,所以使用完成后记得点击停止智能体。

  2. 声网赠送的有部分免费额度,测试使用时无需担心付费问题。

  3. 点击开始对话,首次会请求麦克风权限,需要同意权限。同意后即可开始与ai对话。

05

接入电话:

将ai语音接入电话的能力,需要对接线路运营商。需要公司资质、服务器、一定的开发能力,以下教程会基于有一定开发能力来讲:

5.1、接入线路运营商,资质申请:

以声网官方提供的供应商【小樱桃科技】为例。

【小樱桃科技】官网:https://xswitch.cn/

联系【小樱桃科技】进行申请资质以及线路,获取账号密码。

5.2、接口对接:

5.2.1、获取【小樱桃科技】的token。

①调用/api/sessions接口。

②传参为账号(login),密码(password),从而获取token。

③获取到的token需要放在外呼接口的header里,作为接口外呼时鉴权。

5.2.2、进行外呼。

调用小樱桃/api/agora/callPSTN接口:

hearder需要传刚刚获取到的token的值。

传参:

声网频道(channnel)

主叫号码(cidNumber)

进入声网顺序(dialPhoneFirst)(true为先呼叫手机,手机接听后才进入声网)

被叫号码(destNumber)``声网token(token)

调用声网/join接口。

小樱桃呼出时,我们需要将ai的频道提前准备好。所以在呼出的同时,需要调用声网的创建频道的接口。

声网详细内容可参考声网开发文档:https://doc.shengwang.cn/doc/convoai/restful/get-started/quick-start

  
声网接口调用示例:  
curl --request post \  
  --url https://api.agora.io/cn/api/conversational-ai-agent/v2/projects/<your_app_id>/join \  
  --header 'Authorization: Basic <credentials>' \  
  --data '  
{  
  "name": "unique_name",  
  "properties": {  
    "channel": "channel_name",  
    "token": "token",  
    "agent_rtc_uid": "0",  
    "remote_rtc_uids": [  
      "*"  
    ],  
    "asr": {  
      "language": "zh-CN"  
    },  
    "llm": {  
      "url": "https://api.xxxx/v1/xxxx",  
      "api_key": "xxx",  
      "system_messages": [  
        {  
          "role": "system",  
          "content": "You are a helpful chatbot."  
        }  
      ],  
      "greeting_message": "您好,有什么可以帮您?",  
      "failure_message": "抱歉,我无法回答这个问题。",  
      "max_history": 10,  
      "params": {  
        "model": "xxxx",  
      }  
    },  
    "tts": {  
      "vendor": "vendor_name",  
      "params": {  
        "key": "xxxx",  
        "voice_id": "xxxx",  
      }  
    }  
  }  
}

5.3、外呼项目示例

picture.image

我已经做好了外呼demo,申请好资质后,将小樱桃账号密码,以及声网接口中所需的内容填入代码中,即可开始使用。

06

结语:

以上便是整个搭建过程,遇到任何任何问题,都可以评论区留言,尽力解答~

自从上一篇鼓励大家输出的分享《我是如何把AI从爱好做成“副业”和“全职”的》,我已知的已经有两个人迈出了输出的第一步,非常开心见证大家的改变。

我是梦飞,我们下次见~

既然看到这里了,如果你喜欢,请随手点个赞、在看、转发三连吧,感谢你的支持~

往期推荐

1、我是如何把AI从爱好做成“副业”和“全职”的

2、抛砖引玉 | 为什么DeepSeek-R1是推理模型?(万字长文)

3、二次元女友陪你上班是种什么体验?手把手教你用AI打破次元壁!

4、手把手教你把AI大模型接入小米音箱,无需任何代码基础详细操作教程

5、怎么让AI认识你的产品?实践干货分享!

6、2025春季火山引擎Force原动力大会 DeepSearch技术详解演讲全文

7、用了两周,发现小米AI眼镜最有用的竟是这个...

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
CV 技术在视频创作中的应用
本次演讲将介绍在拍摄、编辑等场景,我们如何利用 AI 技术赋能创作者;以及基于这些场景,字节跳动积累的领先技术能力。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论