0

0

使用 OpenAI 实时 API 和 Twilio 构建 AI 语音助手

碧海醫心

碧海醫心

发布时间:2026-01-09 10:48:38

|

245人浏览过

|

来源于php中文网

原创

在人工智能和通信技术融合的时代,构建能够进行自然对话的 AI 语音助手已成为可能。通过结合 OpenAI 强大的实时 API 与 Twilio 的通信平台,开发者可以创建低延迟、多模态的语音交互体验。本文将深入探讨如何利用这两项技术,并结合 Node.js,从头开始构建一个 AI 语音助手。我们将详细介绍所需的步骤、代码示例,以及在构建过程中可能遇到的常见问题及其解决方案。无论您是经验丰富的开发者还是刚入门的新手,本文都将为您提供宝贵的知识和实践指导,助您打造出令人印象深刻的 AI 语音助手。

关键要点

OpenAI 实时 API 现在已正式发布,可用于构建低延迟语音应用。

通过 Twilio,可以将 OpenAI 的语音功能集成到电话呼叫中。

可以通过更新 GitHub 存储库中的代码来利用 OpenAI 实时 API 的最新功能。

使用 Google 的 Chirp 音频引擎可以显著提高 Twilio 语音的质量。

通过 Ngrok 可以方便地将本地服务器暴露给 Twilio,进行开发和测试。

OpenAI 实时 API 提供了多种声音选择,包括 Cedar 和 Marin,可以定制语音助手的个性。

从 Beta 版本过渡到正式版本需要更新模型名称并移除 OpenAI Beta 标头。

OpenAI 实时 API 与 Twilio 的集成

OpenAI 实时 API 简介

openai 实时 api 允许开发者将快速的语音转文本和文本转语音功能集成到他们的应用程序中。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

使用 OpenAI 实时 API 和 Twilio 构建 AI 语音助手

它实现了低延迟、多模式的交互,包括语音转语音对话和实时转录。该 API 与 GPT-4o 和 GPT-4o mini 等原生多模式模型配合使用,提供诸如实时文本和音频处理、函数调用和语音生成等功能。值得一提的是,OpenAI 实时 API 已经正式发布,意味着它已经脱离测试阶段,可以安全地用于生产环境。

OpenAI 实时 API 的核心优势在于其低延迟特性。传统的语音助手往往需要先将语音转换为文本,再进行处理,最后将文本转换为语音输出。这个过程会引入一定的延迟,影响用户体验。而 OpenAI 实时 API 可以实现接近实时的语音交互,极大地提升了语音助手的响应速度和自然度。此外,多模式支持也使得开发者可以构建更加丰富的交互体验,例如结合语音、文本和视觉信息,为用户提供更加全面的服务。

Twilio 简介

Twilio 是一个云通信平台,允许开发者使用其 API 进行语音、短信、视频和其他通信功能的编程控制。通过 Twilio,开发者可以轻松地创建和管理电话呼叫、发送和接收短信,以及构建各种通信应用程序。Twilio 提供了强大的 API 和工具,使得通信功能的集成变得简单快捷。

Twilio 的核心优势在于其灵活性和可扩展性。开发者可以根据自己的需求,选择不同的 API 和服务,构建各种定制化的通信应用程序。此外,Twilio 还可以轻松地扩展到全球范围,满足不同地区用户的需求。在本文中,我们将使用 Twilio Voice 服务,将 OpenAI 实时 API 的语音功能集成到电话呼叫中,创建一个可以通过电话进行交互的 AI 语音助手。

整合 OpenAI 实时 API 与 Twilio Voice

将 OpenAI 实时 API 与 Twilio Voice 结合使用,可以构建强大的 AI 语音助手,该助手可以理解并响应用户的语音输入,执行各种任务,并提供有用的信息。以下是整合这两项技术的基本步骤:

  1. 设置 Twilio 账号和电话号码:首先,您需要创建一个 Twilio 账号,并购买一个具有语音功能的电话号码。这是构建语音助手的基础。
  2. 配置 Twilio 电话号码:在 Twilio 控制台中,配置您的电话号码,使其在收到来电时,向您的服务器发送一个 HTTP 请求。这个请求将包含来电的相关信息,例如来电号码、呼叫时间等。
  3. 创建服务器端应用程序:您需要创建一个服务器端应用程序,用于处理 Twilio 的请求,并将语音数据传递给 OpenAI 实时 API。这个应用程序可以使用 Node.js、Python 或其他任何您熟悉的编程语言编写。
  4. 使用 OpenAI 实时 API 进行语音识别和文本生成:在服务器端应用程序中,使用 OpenAI 实时 API 将用户的语音转换为文本,并使用 GPT 模型生成相应的回复。
  5. 使用 Twilio Voice 将文本转换为语音并播放给用户:最后,使用 Twilio Voice 将 GPT 模型生成的文本转换为语音,并通过电话播放给用户。

通过以上步骤,您就可以创建一个可以通过电话进行交互的 AI 语音助手。用户可以通过电话向助手提出问题、发出指令,并获得助手的语音回复。这种交互方式非常自然和便捷,可以应用于各种场景,例如客户服务、智能家居控制等。

代码示例与配置

克隆 GitHub 仓库并安装依赖

第一步是克隆提供的 GitHub 仓库。

使用 OpenAI 实时 API 和 Twilio 构建 AI 语音助手

该仓库包含了构建 AI 语音助手所需的代码。使用以下命令克隆仓库:

git clone https://github.com/twilio-samples/speech-assistant-openai-realtime-api-node

克隆完成后,进入仓库目录,并使用 npm 安装项目依赖:

cd speech-assistant-openai-realtime-api-node
npm install

这些依赖包括 Node.js、Twilio Voice 和 Media Streams 以及 OpenAI 实时 API。安装完成后,您就可以开始配置应用程序了。

配置 OpenAI API 密钥

接下来,您需要配置 OpenAI API 密钥。

使用 OpenAI 实时 API 和 Twilio 构建 AI 语音助手

在项目根目录下,找到 .env.example 文件,将其重命名为 .env,并添加您的 OpenAI API 密钥:

OPENAI_API_KEY=sk-your_openai_api_key

请确保将 sk-your_openai_api_key 替换为您真实的 OpenAI API 密钥。这是应用程序访问 OpenAI 实时 API 的凭证。

务必保护好您的 OpenAI API 密钥,避免泄露给他人。 建议将 .env 文件添加到 .gitignore 文件中,以防止其被提交到代码仓库。

配置 Twilio 语音

除了 OpenAI API 密钥,您还需要配置 Twilio 语音。 在 Twilio 控制台中,找到您的电话号码,并配置其语音设置。将 "A Call Comes In" 设置为 "Webhook",并将 URL 设置为您的服务器地址,例如:

剪刀手
剪刀手

全自动AI剪辑神器:日剪千条AI原创视频,零非原创风险,批量高效制作引爆流量!免费体验,轻松上手!

下载
https://your_server_address/incoming-call

请将 https://your_server_address 替换为您服务器的真实地址。您可以使用 Ngrok 将您的本地服务器暴露给 Twilio,以便进行开发和测试。具体步骤请参考下文。

此外,您还需要确保您的 Twilio 账号具有足够的余额,以便进行电话呼叫。您可以在 Twilio 控制台中查看您的账号余额,并充值。

选择语音

OpenAI 实时 API 提供了多种语音选择,包括 Cedar 和 Marin。

使用 OpenAI 实时 API 和 Twilio 构建 AI 语音助手

您可以根据您的喜好,选择不同的语音,定制语音助手的个性。在 index.js 文件中,找到 VOICE 变量,将其设置为您想要使用的语音:

const VOICE = 'cedar';

您还可以尝试其他语音,例如 marinalloy。每种语音都有其独特的音色和风格,您可以根据您的应用程序的需求进行选择。

更新 OpenAI 模型名称

从 Beta 版本过渡到正式版本后,您需要更新 OpenAI 模型名称。

使用 OpenAI 实时 API 和 Twilio 构建 AI 语音助手

index.js 文件中,找到 openAIWs 变量,将其 model 参数设置为 gpt-realtime

const openAIWs = new WebSocket(
  `wss://api.openai.com/v1/realtime?model=gpt-realtime`,
  {
    headers: {
      Authorization: `Bearer ${OPENAI_API_KEY}`,
    },
  }
);

此外,您还需要移除 OpenAI-Beta 标头,因为它不再需要了。

AI 语音助手使用指南

运行应用程序

完成配置后,您就可以运行应用程序了。在项目根目录下,使用以下命令启动服务器:

node index.js

如果一切顺利,您将看到类似以下的输出:

Twilio Media Stream Server is running!

使用 Ngrok 暴露本地服务器

如果您在本地开发和测试应用程序,您需要使用 Ngrok 将您的本地服务器暴露给 Twilio。 Ngrok 是一个可以创建安全隧道的工具,允许外部服务访问您的本地服务器。使用以下命令启动 Ngrok:

ngrok http 5050

请确保将 5050 替换为您服务器监听的端口号。Ngrok 将生成一个公共 URL,您可以使用该 URL 配置您的 Twilio 电话号码。请注意,每次启动 Ngrok,都会生成一个新的 URL,您需要及时更新您的 Twilio 电话号码配置。

拨打电话并与 AI 语音助手交互

现在,您可以拨打您的 Twilio 电话号码,并与 AI 语音助手进行交互了。您可以使用 Twilio Dev Phone、您的手机或其他任何电话设备拨打电话。

当您拨打电话时,您将听到一个欢迎语,提示您可以开始说话。 然后,您可以向 AI 语音助手提出问题、发出指令,或进行任何您想要进行的对话。AI 语音助手将使用 OpenAI 实时 API 将您的语音转换为文本,并使用 GPT 模型生成相应的回复。最后,AI 语音助手将使用 Twilio Voice 将回复转换为语音,并通过电话播放给您。

请注意,由于 OpenAI 实时 API 仍然处于开发阶段,语音助手的响应速度和准确性可能存在一定的波动。

OpenAI 实时 API 和 Twilio 集成的优缺点分析

? Pros

低延迟:OpenAI 实时 API 实现了接近实时的语音交互,极大地提升了用户体验。

多模式支持:OpenAI 实时 API 支持多种模式的输入,可以构建更加丰富的交互体验。

灵活性:Twilio 提供了灵活的 API 和服务,可以轻松地创建和管理电话呼叫。

可扩展性:Twilio 可以轻松地扩展到全球范围,满足不同地区用户的需求。

? Cons

成本:使用 OpenAI 实时 API 和 Twilio 需要一定的成本,特别是对于高流量的应用程序。

复杂性:将 OpenAI 实时 API 和 Twilio 集成需要一定的技术能力,特别是对于初学者。

依赖性:应用程序依赖于 OpenAI 和 Twilio 的服务,如果这些服务出现故障,应用程序将受到影响。

常见问题解答

如何解决 OpenAI API 密钥无效的问题?

请确保您已正确配置 OpenAI API 密钥,并且您的账号具有足够的余额。此外,请检查您的 API 密钥是否已过期或被禁用。

如何解决 Twilio 无法访问我的本地服务器的问题?

请确保您已正确配置 Ngrok,并且您的 Twilio 电话号码配置使用了 Ngrok 生成的公共 URL。此外,请检查您的服务器是否正在运行,并且监听了正确的端口号。

如何提高 AI 语音助手的响应速度和准确性?

您可以尝试使用更强大的 GPT 模型,例如 GPT-4。此外,您还可以优化您的代码,减少延迟,并使用更清晰的语音输入。

相关问题

OpenAI 实时 API 的未来发展方向是什么?

OpenAI 实时 API 的未来发展方向是朝着更加智能、自然和个性化的方向发展。我们可以期待以下几个方面的改进: 更强大的语音识别能力:OpenAI 将不断改进其语音识别模型,使其能够更准确地理解各种口音、语速和语言风格。 更自然的语音生成能力:OpenAI 将不断改进其语音生成模型,使其能够生成更加自然、流畅和富有表现力的语音。 更丰富的多模式支持:OpenAI 将不断扩展其多模式支持,使其能够处理更多类型的输入,例如视觉信息、传感器数据等。 更强大的上下文理解能力:OpenAI 将不断改进其上下文理解能力,使其能够更好地理解对话的上下文,并生成更相关的回复。 更个性化的交互体验:OpenAI 将不断探索个性化交互体验,使其能够根据用户的偏好和历史记录,提供更加定制化的服务。 总而言之,OpenAI 实时 API 将朝着更加智能、自然和个性化的方向发展,为开发者提供更加强大的工具,构建更加出色的 AI 语音助手。

相关专题

更多
python开发工具
python开发工具

php中文网为大家提供各种python开发工具,好的开发工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。php中文网还为大家带来python相关课程以及相关文章等内容,供大家免费下载使用。

741

2023.06.15

python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

634

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

755

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

617

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

1259

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

547

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

577

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

705

2023.08.11

c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

3

2026.01.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 0.6万人学习

Django 教程
Django 教程

共28课时 | 2.9万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号