语音服务接口
介绍
语音服务接口:通过 Speech 单例提供机器人语音相关功能,包括音频前处理(AFE)、语音识别(ASR)、关键词唤醒(KWS)和语音合成(TTS)。
| 功能 | Python |
|---|---|
| 获取语音 API 实例 | ✔ |
| 音频前处理(AFE) | ✔ |
| 回声消除(AEC) | ✔ |
| 语音增强 | ✔ |
| 语音识别(ASR) | ✔ |
| 关键词唤醒(KWS) | ✔ |
| 语音合成(TTS) | ✔ |
| 语音事件回调 | ✔ |
单例获取
Python接口
Speech.get_instance()
功能说明
获取 Speech 单例实例。整个程序生命周期中只有一个 Speech 实例。
参数说明
无参数。
返回值
| 类型 | 说明 |
|---|---|
Speech | 语音 API 单例实例。 |
调用示例
from daystar_api.lowlevel_skills import Speech
speech = Speech.get_instance()AFE 音频前处理
Python接口
speech.enable_afe_engine(enable, block=True, timeout=5)
功能说明
启用或禁用音频前端(AFE)引擎。AFE 是语音处理的基础模块,启用后才能使用 AEC、语音增强等功能。
参数说明
| 参数名 | 类型 | 必填/默认值 | 说明 |
|---|---|---|---|
enable | bool | 必填 | True 启用,False 禁用。 |
block | bool | 默认: True | True 时阻塞等待完成。 |
timeout | int | 默认: 5 | 超时时间(秒)。 |
返回值
| 类型 | 说明 |
|---|---|
EnableServiceResponse | state.code == 0 表示成功。 |
调用示例
speech = Speech.get_instance()
speech.enable_afe_engine(True)speech.enable_aec(enable, block=True, timeout=5)
功能说明
启用或禁用声学回声消除(AEC),减少扬声器声音对麦克风的干扰。
参数说明
| 参数名 | 类型 | 必填/默认值 | 说明 |
|---|---|---|---|
enable | bool | 必填 | True 启用,False 禁用。 |
block | bool | 默认: True | True 时阻塞等待完成。 |
timeout | int | 默认: 5 | 超时时间(秒)。 |
返回值
| 类型 | 说明 |
|---|---|
EnableServiceResponse | state.code == 0 表示成功。 |
调用示例
speech.enable_aec(True)speech.enable_speech_enhance(enable, block=True, timeout=5)
功能说明
启用或禁用语音增强,改善嘈杂环境中的语音质量。
参数说明
| 参数名 | 类型 | 必填/默认值 | 说明 |
|---|---|---|---|
enable | bool | 必填 | True 启用,False 禁用。 |
block | bool | 默认: True | True 时阻塞等待完成。 |
timeout | int | 默认: 5 | 超时时间(秒)。 |
返回值
| 类型 | 说明 |
|---|---|
EnableServiceResponse | state.code == 0 表示成功。 |
调用示例
speech.enable_speech_enhance(True)speech.set_bypass(enable, block=True, timeout=5)
功能说明
设置 AFE 旁路模式,旁路时音频直接透传不经过处理。
参数说明
| 参数名 | 类型 | 必填/默认值 | 说明 |
|---|---|---|---|
enable | bool | 必填 | True 启用旁路,False 关闭旁路。 |
block | bool | 默认: True | True 时阻塞等待完成。 |
timeout | int | 默认: 5 | 超时时间(秒)。 |
返回值
| 类型 | 说明 |
|---|---|
EnableServiceResponse | state.code == 0 表示成功。 |
speech.mute_clean_mic(enable, block=True, timeout=5)
功能说明
静音/取消静音清洁麦克风通道。
参数说明
| 参数名 | 类型 | 必填/默认值 | 说明 |
|---|---|---|---|
enable | bool | 必填 | True 静音,False 取消静音。 |
block | bool | 默认: True | True 时阻塞等待完成。 |
timeout | int | 默认: 5 | 超时时间(秒)。 |
返回值
| 类型 | 说明 |
|---|---|
EnableServiceResponse | state.code == 0 表示成功。 |
ASR 语音识别
Python接口
speech.enable_asr(enable, block=True, timeout=5)
功能说明
启用或禁用自动语音识别(ASR)。启用后,语音输入将被实时转录为文本,通过注册的 ASR 回调接收识别结果。
参数说明
| 参数名 | 类型 | 必填/默认值 | 说明 |
|---|---|---|---|
enable | bool | 必填 | True 启用,False 禁用。 |
block | bool | 默认: True | True 时阻塞等待完成。 |
timeout | int | 默认: 5 | 超时时间(秒)。 |
返回值
| 类型 | 说明 |
|---|---|
EnableServiceResponse | state.code == 0 表示成功。 |
调用示例
from daystar_api.lowlevel_skills import Speech
speech = Speech.get_instance()
def on_asr(event):
if event.is_final:
print(f"识别结果: {event.text}")
speech.register_asr_callback(on_asr)
speech.enable_asr(True)speech.switch_asr_device(device, block=True, timeout=5)
功能说明
切换 ASR 使用的音频输入设备。
参数说明
| 参数名 | 类型 | 必填/默认值 | 说明 |
|---|---|---|---|
device | str | 必填 | 目标音频设备名称。 |
block | bool | 默认: True | True 时阻塞等待完成。 |
timeout | int | 默认: 5 | 超时时间(秒)。 |
返回值
| 类型 | 说明 |
|---|---|
EnableServiceResponse | state.code == 0 表示成功。 |
KWS 关键词唤醒
Python接口
speech.enable_hexaware(enable, block=True, timeout=5)
功能说明
启用或禁用 Hexaware 唤醒词检测引擎。
参数说明
| 参数名 | 类型 | 必填/默认值 | 说明 |
|---|---|---|---|
enable | bool | 必填 | True 启用,False 禁用。 |
block | bool | 默认: True | True 时阻塞等待完成。 |
timeout | int | 默认: 5 | 超时时间(秒)。 |
返回值
| 类型 | 说明 |
|---|---|
EnableServiceResponse | state.code == 0 表示成功。 |
speech.enable_kws(enable, block=True, timeout=5)
功能说明
启用或禁用关键词识别(KWS)。
参数说明
| 参数名 | 类型 | 必填/默认值 | 说明 |
|---|---|---|---|
enable | bool | 必填 | True 启用,False 禁用。 |
block | bool | 默认: True | True 时阻塞等待完成。 |
timeout | int | 默认: 5 | 超时时间(秒)。 |
返回值
| 类型 | 说明 |
|---|---|
EnableServiceResponse | state.code == 0 表示成功。 |
TTS 语音合成
Python接口
speech.enable_tts(enable, block=True, timeout=5)
功能说明
启用或禁用文字转语音(TTS)引擎。
参数说明
| 参数名 | 类型 | 必填/默认值 | 说明 |
|---|---|---|---|
enable | bool | 必填 | True 启用,False 禁用。 |
block | bool | 默认: True | True 时阻塞等待完成。 |
timeout | int | 默认: 5 | 超时时间(秒)。 |
返回值
| 类型 | 说明 |
|---|---|
EnableServiceResponse | state.code == 0 表示成功。 |
speech.generate_audio(text, block=True, timeout=30)
功能说明
将文本转换为语音并播放。支持阻塞(等待播放完成)和非阻塞(立即返回 AudioFuture)两种模式。
参数说明
| 参数名 | 类型 | 必填/默认值 | 说明 |
|---|---|---|---|
text | str | 必填 | 要合成和播放的文本内容。 |
block | bool | 默认: True | True 时阻塞直到播放完成;False 时立即返回。 |
timeout | int | 默认: 30 | 超时时间(秒)。 |
返回值
| 类型 | 说明 |
|---|---|
GenerateAudioResponse | block=True 时返回播放结果;block=False 时 response.future 为 AudioFuture,可调用 .get(timeout) 等待结果。 |
调用示例
speech = Speech.get_instance()
speech.enable_tts(True)
# 阻塞播放
speech.generate_audio("你好,我是机器人")
# 非阻塞播放
resp = speech.generate_audio("开始执行任务", block=False)
# 做其他事情...
result = resp.future.get(timeout=10)speech.stop_playing_tts(timeout=5)
功能说明
立即停止当前正在播放的 TTS 语音。
参数说明
| 参数名 | 类型 | 必填/默认值 | 说明 |
|---|---|---|---|
timeout | int | 默认: 5 | 超时时间(秒)。 |
返回值
| 类型 | 说明 |
|---|---|
EnableServiceResponse | state.code == 0 表示成功。 |
speech.cancel_generate_audio(timeout=5)
功能说明
取消正在进行的音频生成任务。
参数说明
| 参数名 | 类型 | 必填/默认值 | 说明 |
|---|---|---|---|
timeout | int | 默认: 5 | 超时时间(秒)。 |
返回值
| 类型 | 说明 |
|---|---|
EnableServiceResponse | state.code == 0 表示成功。 |
speech.switch_tts_device(device, block=True, timeout=5)
功能说明
切换 TTS 使用的音频输出设备。
参数说明
| 参数名 | 类型 | 必填/默认值 | 说明 |
|---|---|---|---|
device | str | 必填 | 目标音频设备名称。 |
block | bool | 默认: True | True 时阻塞等待完成。 |
timeout | int | 默认: 5 | 超时时间(秒)。 |
返回值
| 类型 | 说明 |
|---|---|
EnableServiceResponse | state.code == 0 表示成功。 |
事件回调
Python接口
speech.register_asr_callback(callback)
功能说明
注册 ASR 语音识别结果回调。每当识别到语音时触发,event.is_final 为 True 表示最终识别结果。
调用示例
def on_asr(event):
if event.is_final:
print(f"最终识别: {event.text}")
else:
print(f"中间结果: {event.text}")
speech.register_asr_callback(on_asr)speech.register_hexaware_callback(callback)
功能说明
注册唤醒词检测回调,接收 HexawareAwakenEvent。
speech.register_kws_message_callback(callback)
功能说明
注册关键词识别回调,接收 KwsMessageEvent。
speech.register_nlu_format_callback(callback)
功能说明
注册 NLU(自然语言理解)格式化结果回调,接收 NluFormatEvent。
speech.register_generate_audio_callbacks(progress_cb=None, complete_cb=None)
功能说明
注册 TTS 音频生成的进度和完成回调。
调用示例
def on_progress(event):
print(f"TTS 进度: {event.progress}%")
def on_complete(event):
print("TTS 播放完成")
speech.register_generate_audio_callbacks(
progress_cb=on_progress,
complete_cb=on_complete
)