AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


OpenAI Realtime 低延迟,多模态,实时语音交互
发布日期:2024-10-08 21:10:59 浏览次数: 1682 来源:机智相伴


OpenAI 公布了五项重大创新,其中“实时 API”(Realtime API)的新功能,使得开发者能够创建具有低延迟、AI 生成的语音响应功能的应用程序。尽管这一功能不完全等同于 ChatGPT 的高级语音模式,但其能力已经非常接近,旨在帮助开发者为用户提供近乎实时的语音到语音互动体验。除此之外,OpenAI 还发布了其他一系列新功能,旨在进一步提升开发者的 AI 应用构建体验。

包括实时语音API、提示词缓存、模型蒸馏、视觉微调、新Playground。

这些创新将改变开发者与AI互动的方式,并有助于降低AI模型的使用成本,推动多模式的语音、视觉等应用的普及。

Realtime API 的革新

传统上,处理语音交互需要经过多个步骤(ASR-LLM-TTS),导致响应延迟。在文本交互中,这种延迟可能尚可接受,但在电话客服中则难以容忍。Realtime API 的引入直接解决了这一问题。
OpenAI 的 Realtime API 可以直接处理语音输入和输出,消除了传统语音交互流程中的中间步骤。传统流程通常需要先将语音转换为文本,再将文本转换为语音,这会导致较大的延迟。而 Realtime API 简化了这一过程,实现了语音到语音的直接转换,大幅减少了延迟,提供了流畅的实时交互体验。
在 DevDay 大会上,OpenAI 展示了一个实时语音电话系统,用户可以通过语音指令订购等商品。系统实时捕获用户的语音指令,理解需求,并立即通过语音反馈确认订购信息。这种自然、高效的交互展示了实时语音技术的潜力。
在客户服务领域,这意味着实时语音交互不仅能够提升用户体验,还能使服务更加个性化和及时化。企业可以利用 Realtime API 打造更智能的语音助手和 IVR 系统,特别是在需要快速响应和低延迟互动的场景中,为客户提供即时支持。

实时语音 AI 的应用场景


  1. 智能 IVR:结合语音识别和自然语言处理(NLP),智能 IVR 可以识别用户请求,提供多级菜单选择和自动身份验证,减少对人工客服的依赖,提升服务效率。
  2. 智能路由:通过情感分析和用户历史数据,识别客户情绪和意图,将客户转接给合适的客服代表或曾经服务过的客服人员。
    故障排查:使用语音机器人解决简单问题,无法解决时自动转接人工客服并提供上下文信息,人工客服进行后续问题的解决。
    语音通知与提醒:自动拨号向客户推送重要通知,提供预约提醒、语音关怀、语音促销和未接电话重拨,确保用户不遗漏重要信息。
    销售外呼:基于用户数据生成个性化话术,确定潜在客户优先级,通过语音机器人与客户互动收集反馈,自动记录通话并生成线索报告,提升销售效率

影响与前景

这种无缝、多渠道的体验对客户服务的影响是巨大的。它降低了客户沟通成本,使服务更加人性化,同时让客服人员能够专注于需要人工干预的问题,从而提高服务质量。


个人体验

项目本地部署

OpenAI 在 github 上面发布了最新的 realtime-api 开源项目。该项目是 React 应用程序,用于使用 Realtime API 进行检查、构建和调试。

https://github.com/openai/openai-realtime-console.git

Realtime API 能够构建低延迟、多模式的对话体验。它目前支持将文本和音频作为输入和输出,以及函数调用。

API 的一些显著优势包括:

  1. 本机语音转语音:没有文本中介意味着低延迟、细致入微的输出。

  2. 自然、可操纵的声音:这些模特具有自然的语调变化,可以大笑、耳语并遵循语气方向。

  3. 同步多模态输出:文本有助于审核,比实时更快的音频确保稳定播放。


项目运行需要 node 环境,还有 openai 的 API KEY,并且需要有余额。

# 拉取仓库代码git clone https://github.com/openai/openai-realtime-console.git
cd openai-realtime-console# 安装依赖包npm i
# 启动服务npm start

启动后需要先填入 OpenAI API Key。

进入后就能够看到主界面。

点击右下角的 "connect" 后就会询问开启麦克风。

连接成功后即可进行语音实时聊天。


官方定价

从目前的定价来看,是贵的很,文字1M输入是5刀、输出是20刀,而语音1M输入是100刀、输出是200刀。玩不起


官方 Realtime API 使用示例

Realtime API 是一种基于事件的有状态 API,通过 WebSocket 进行通信。下面是一个使用 Node.js 中流行的 ws 库建立套接字连接、从客户端发送消息以及从服务器接收响应的简单示例。

import WebSocket from "ws";
const url = "wss://api.openai.com/v1/realtime?model=gpt-4o-realtime-preview-2024-10-01";const ws = new WebSocket(url, {headers: {"Authorization": "Bearer " + process.env.OPENAI_API_KEY,"OpenAI-Beta": "realtime=v1",},});
ws.on("open", function open() {console.log("Connected to server.");ws.send(JSON.stringify({type: "response.create",response: {modalities: ["text"],instructions: "Please assist the user.",}}));});
ws.on("message", function incoming(message) {console.log(JSON.parse(message.toString()));});


  • 发送文本

const event = {type: 'conversation.item.create',item: {type: 'message',role: 'user',content: [{type: 'input_text',text: 'Hello!'}]}};ws.send(JSON.stringify(event));ws.send(JSON.stringify({type: 'response.create'}));


  • 发送音频

import fs from 'fs';import decodeAudio from 'audio-decode';
// Converts Float32Array of audio data to PCM16 ArrayBufferfunction floatTo16BitPCM(float32Array) {const buffer = new ArrayBuffer(float32Array.length * 2);const view = new DataView(buffer);let offset = 0;for (let i = 0; i < float32Array.length; i++, offset += 2) {let s = Math.max(-1, Math.min(1, float32Array[i]));view.setInt16(offset, s < 0 ? s * 0x8000 : s * 0x7fff, true);}return buffer;}
// Converts a Float32Array to base64-encoded PCM16 database64EncodeAudio(float32Array) {const arrayBuffer = floatTo16BitPCM(float32Array);let binary = '';let bytes = new Uint8Array(arrayBuffer);const chunkSize = 0x8000; // 32KB chunk sizefor (let i = 0; i < bytes.length; i += chunkSize) {let chunk = bytes.subarray(i, i + chunkSize);binary += String.fromCharCode.apply(null, chunk);}return btoa(binary);}
// Using the "audio-decode" library to get raw audio bytesconst myAudio = fs.readFileSync('./path/to/audio.wav');const audioBuffer = await decodeAudio(myAudio);const channelData = audioBuffer.getChannelData(0); // only accepts monoconst base64AudioData = base64EncodeAudio(channelData);
const event = {type: 'conversation.item.create',item: {type: 'message',role: 'user',content: [{type: 'input_audio',audio: base64AudioData}]}};ws.send(JSON.stringify(event));ws.send(JSON.stringify({type: 'response.create'}));


更多示例可以阅览官方的说明文档。

https://platform.openai.com/docs/guides/realtime


TO B:Azure-Open AI


Azure-OPen AI- audio-real-time 接口已经上线,大家可以通过Azure 国际站申请测试使用,非常方便

https://learn.microsoft.com/zh-cn/azure/ai-services/openai/how-to/audio-real-time


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询