BAIZE AI RESOURCE

实时语音对话应用

Speech-to-speech

Speech-to-speech 是用于搭建实时语音助手的应用,可将用户说话接入语言模型,再以语音回答。它提供本地麦克风客户端和实时服务,方便用户直接进行语音对话,也方便开发者接入自己的客户端。

Speech-to-speech

资源介绍

Speech-to-speech 面向想搭建语音助手的用户和开发者。用户说话后,它可以识别语音、交由语言模型生成回答,再将回答合成为语音;各环节使用的模型可以按需要更换。项目提供连接麦克风和扬声器的本地对话方式,也能启动实时服务,供浏览器演示页面或其他客户端连接。用户可选择在支持的 Mac 或 Linux 设备上运行本地模型,也可让本地语音处理配合外部语言模型服务。它适合试用语音交互、制作语音助手原型,或为现有应用加入实时语音对话;具体硬件需求取决于所选模型和配置。

应用能力

实时语音问答

接收用户语音,经过语音识别和语言模型处理后合成语音回答,可用于连续语音对话。

可更换语音与语言模型

语音识别、语言模型和语音合成环节可分别选择支持的模型或服务,便于按设备条件和需求调整。

本地麦克风对话

提供连接麦克风与扬声器的本地客户端,可直接说话并收听回复。

接入实时客户端

实时服务通过兼容 OpenAI Realtime 核心事件的 WebSocket 和 WebRTC 接口提供语音交互,可连接浏览器演示页面等客户端。

说话人标记

启用说话人识别并配合语音识别后,可将会话中不同说话人的匿名标记提供给语言模型;不识别真实身份。

资源配置

应用版本

v1.0.0

运行环境

macOSLinuxDocker

安装方式

包管理器安装Docker部署命令安装源码运行

依赖环境

API Key

安装与使用

  1. 准备 Python 3.10 或更新版本,并根据所选方案准备 Apple Silicon Mac、配备 NVIDIA GPU 的 Linux 设备,或可连接的语言模型服务。

  2. 在 Python 虚拟环境中安装 speech-to-speech;首次运行本地模型时需要联网下载模型。

  3. 选择语音识别、语言模型和语音合成配置;使用外部语言模型服务时,按服务要求配置 API Key。

  4. 运行 speech-to-speech local,通过麦克风和扬声器对话;若要连接浏览器或其他客户端,则运行 speech-to-speech serve 并让客户端连接实时服务。

使用案例

在 Mac 上试用本地语音助手

使用场景Apple Silicon Mac 用户希望不向外部语言模型服务发送对话数据。

安装后使用 Mac 本地预设启动 speech-to-speech local,允许麦克风访问,说话并停顿,即可收听本地模型生成的语音回答。

制作浏览器语音对话原型

使用场景开发者希望在浏览器中测试与语音助手的实时交互。

先启动 speech-to-speech 实时服务,再将浏览器演示页面连接到服务地址;打开页面并授权麦克风后,即可进行语音对话。

包含内容

speech-to-speech-source.zip
README-中文安装说明.md
LICENSE-Apache-2.0.txt
SHA256.txt

常见问题

Speech-to-speech 能否在本地完成整个语音对话流程?
可以。项目提供 Apple Silicon Mac 和配备 NVIDIA GPU 的 Linux 本地配置,语音识别、语言模型和语音合成均可在本机运行;首次使用仍需联网下载模型。
可以使用外部语言模型,同时把麦克风音频留在本地吗?
可以选择本地语音处理配合外部语言模型。该配置会向服务商发送转写文字、指令和对话历史,麦克风音频留在本地;对话期间需要联网,并按服务要求提供 API Key。
浏览器演示页面为什么无法获取麦克风?
浏览器获取麦克风需要 HTTPS 或 localhost 环境,并且用户须授予麦克风权限;直接通过普通 HTTP 的局域网 IP 地址打开页面不满足演示页面所述要求。
启用说话人标记后,能识别说话人的真实身份吗?
不能。说话人标记最多区分一次会话中的八个匿名说话人位置,不确认真实身份;该功能还需要启用语音识别。