语音控制服务
约 2511 字大约 8 分钟
2025-01-27
提供机器人系统音频控制,包括 TTS 语音合成、音频播放、语音配置。
接口定义
AudioController
是机器人音频控制,包括 TTS 语音合成、音频播放、语音配置。
AudioController
— 音频控制器
项目 | 内容 |
---|---|
类名 | AudioController |
功能概述 | 机器人音频控制,包括 TTS 语音合成、音频播放、语音配置 |
主要功能 | 语音播放、音量控制、语音模型切换、原始音频数据订阅 |
使用场景 | 语音交互、音频播放、语音识别 |
initialize
项目 | 内容 |
---|---|
方法名 | initialize |
方法声明 | bool initialize() |
功能概述 | 初始化音频控制器。 |
返回值 | true 表示成功,false 表示失败。 |
备注 | 首次使用前必须调用。 |
shutdown
项目 | 内容 |
---|---|
方法名 | shutdown |
方法声明 | void shutdown() |
功能概述 | 关闭音频控制器。 |
备注 | 配合 initialize 使用。 |
play
项目 | 内容 |
---|---|
方法名 | play |
方法声明 | Status play(TtsCommand command) |
功能概述 | 播放 TTS(文本转语音)语音命令。 |
参数说明 | command :TTS 命令,包含文本、语速、语调等。 |
返回值 | Status::OK 表示成功,其他为失败状态。 |
备注 | 阻塞接口,调用前需确保已初始化模块。 |
stop
项目 | 内容 |
---|---|
方法名 | stop |
方法声明 | Status stop() |
功能概述 | 停止当前音频播放。 |
返回值 | Status::OK 表示成功,其他为失败状态。 |
备注 | 阻塞接口,通常用于中断当前语音。 |
set_volume
项目 | 内容 |
---|---|
方法名 | set_volume |
方法声明 | Status set_volume(int volume) |
功能概述 | 设置音频输出的音量。 |
参数说明 | volume :音量值,通常范围为 0~100。 |
返回值 | Status::OK 表示成功,其他为失败状态。 |
备注 | 阻塞接口,设置后立即生效。 |
get_volume
项目 | 内容 |
---|---|
方法名 | get_volume |
方法声明 | int get_volume() |
功能概述 | 获取当前音频输出音量。 |
返回值 | 当前音量值,失败返回 -1。 |
备注 | 非阻塞接口。 |
switch_tts_voice_model
项目 | 内容 |
---|---|
方法名 | switch_tts_voice_model |
方法声明 | Status switch_tts_voice_model(TtsType tts_type, GetSpeechConfig config) |
功能概述 | 切换语音模型并获取更新后的配置信息。 |
参数说明 | tts_type :要切换的语音模型类型config :语音配置对象 |
返回值 | Status::OK 表示成功,其他为失败状态。 |
备注 | 阻塞接口,切换语音模型后会自动更新配置信息。 |
get_voice_config
项目 | 内容 |
---|---|
方法名 | get_voice_config |
方法声明 | GetSpeechConfig get_voice_config() |
功能概述 | 获取语音系统的完整配置信息。 |
返回值 | 语音系统配置信息,失败返回空配置对象。 |
备注 | 阻塞接口,获取的配置包含音色、智能体、唤醒、对话等所有子配置。 |
set_voice_config
项目 | 内容 |
---|---|
方法名 | set_voice_config |
方法声明 | Status set_voice_config(SetSpeechConfig config) |
功能概述 | 设置语音系统的完整配置信息。 |
参数说明 | config :要设置的语音系统配置信息。 |
返回值 | Status::OK 表示成功,其他为失败状态。 |
备注 | 阻塞接口,设置的配置将完全覆盖当前所有语音相关配置。 |
control_voice_stream
项目 | 内容 |
---|---|
方法名 | control_voice_stream |
方法声明 | Status control_voice_stream(bool raw_data, bool bf_data) |
功能概述 | 控制语音数据流。 |
参数说明 | raw_data :是否发送原始数据bf_data :是否发送 bf 数据 |
返回值 | Status::OK 表示成功,其他为失败。 |
备注 | 阻塞接口,用于控制语音数据流的开启和关闭。 |
subscribe_origin_voice_data
项目 | 内容 |
---|---|
方法名 | subscribe_origin_voice_data |
方法声明 | void subscribe_origin_voice_data(callback) |
功能概述 | 订阅原始语音数据。 |
参数说明 | callback :接收到原始语音数据后的处理回调。函数签名为:callback(data : ByteMultiArray) -> None |
备注 | 非阻塞接口,回调函数会在数据更新时被调用。 |
subscribe_bf_voice_data
项目 | 内容 |
---|---|
方法名 | subscribe_bf_voice_data |
方法声明 | void subscribe_bf_voice_data(callback) |
功能概述 | 订阅 BF 语音数据。 |
参数说明 | callback :接收到 BF 语音数据后的处理回调。函数签名为:callback(data : ByteMultiArray) -> None |
备注 | 非阻塞接口,回调函数会在数据更新时被调用。 |
枚举类型定义
TtsPriority
— TTS 优先级枚举
枚举值 | 数值 | 描述 |
---|---|---|
HIGH | 0 | 高优先级 |
MIDDLE | 1 | 中优先级 |
LOW | 2 | 低优先级 |
TtsMode
— TTS 模式枚举
枚举值 | 数值 | 描述 |
---|---|---|
CLEARTOP | 0 | 清除顶部 |
ADD | 1 | 添加 |
CLEARBUFFER | 2 | 清除缓冲区 |
TtsType
— TTS 类型枚举
枚举值 | 数值 | 描述 |
---|---|---|
NONE | 0 | 无 |
DOUBAO | 1 | 豆包 |
GOOGLE | 2 | 谷歌 |
数据结构定义
TtsCommand
— TTS 命令结构体
字段名 | 类型 | 描述 |
---|---|---|
id | int | 命令 ID |
content | str | 内容 |
priority | TtsPriority | 优先级 |
mode | TtsMode | 模式 |