Skip to content

语音服务接口

介绍

语音服务接口:通过 Speech 单例提供机器人语音相关功能,包括音频前处理(AFE)、语音识别(ASR)、关键词唤醒(KWS)和语音合成(TTS)。

功能Python
获取语音 API 实例
音频前处理(AFE)
回声消除(AEC)
语音增强
语音识别(ASR)
关键词唤醒(KWS)
语音合成(TTS)
语音事件回调

单例获取

Python接口

Speech.get_instance()

功能说明
获取 Speech 单例实例。整个程序生命周期中只有一个 Speech 实例。

参数说明

无参数。

返回值

类型说明
Speech语音 API 单例实例。

调用示例

python
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、语音增强等功能。

参数说明

参数名类型必填/默认值说明
enablebool必填True 启用,False 禁用。
blockbool默认: TrueTrue 时阻塞等待完成。
timeoutint默认: 5超时时间(秒)。

返回值

类型说明
EnableServiceResponsestate.code == 0 表示成功。

调用示例

python
speech = Speech.get_instance()
speech.enable_afe_engine(True)

speech.enable_aec(enable, block=True, timeout=5)

功能说明
启用或禁用声学回声消除(AEC),减少扬声器声音对麦克风的干扰。

参数说明

参数名类型必填/默认值说明
enablebool必填True 启用,False 禁用。
blockbool默认: TrueTrue 时阻塞等待完成。
timeoutint默认: 5超时时间(秒)。

返回值

类型说明
EnableServiceResponsestate.code == 0 表示成功。

调用示例

python
speech.enable_aec(True)

speech.enable_speech_enhance(enable, block=True, timeout=5)

功能说明
启用或禁用语音增强,改善嘈杂环境中的语音质量。

参数说明

参数名类型必填/默认值说明
enablebool必填True 启用,False 禁用。
blockbool默认: TrueTrue 时阻塞等待完成。
timeoutint默认: 5超时时间(秒)。

返回值

类型说明
EnableServiceResponsestate.code == 0 表示成功。

调用示例

python
speech.enable_speech_enhance(True)

speech.set_bypass(enable, block=True, timeout=5)

功能说明
设置 AFE 旁路模式,旁路时音频直接透传不经过处理。

参数说明

参数名类型必填/默认值说明
enablebool必填True 启用旁路,False 关闭旁路。
blockbool默认: TrueTrue 时阻塞等待完成。
timeoutint默认: 5超时时间(秒)。

返回值

类型说明
EnableServiceResponsestate.code == 0 表示成功。

speech.mute_clean_mic(enable, block=True, timeout=5)

功能说明
静音/取消静音清洁麦克风通道。

参数说明

参数名类型必填/默认值说明
enablebool必填True 静音,False 取消静音。
blockbool默认: TrueTrue 时阻塞等待完成。
timeoutint默认: 5超时时间(秒)。

返回值

类型说明
EnableServiceResponsestate.code == 0 表示成功。

ASR 语音识别

Python接口

speech.enable_asr(enable, block=True, timeout=5)

功能说明
启用或禁用自动语音识别(ASR)。启用后,语音输入将被实时转录为文本,通过注册的 ASR 回调接收识别结果。

参数说明

参数名类型必填/默认值说明
enablebool必填True 启用,False 禁用。
blockbool默认: TrueTrue 时阻塞等待完成。
timeoutint默认: 5超时时间(秒)。

返回值

类型说明
EnableServiceResponsestate.code == 0 表示成功。

调用示例

python
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 使用的音频输入设备。

参数说明

参数名类型必填/默认值说明
devicestr必填目标音频设备名称。
blockbool默认: TrueTrue 时阻塞等待完成。
timeoutint默认: 5超时时间(秒)。

返回值

类型说明
EnableServiceResponsestate.code == 0 表示成功。

KWS 关键词唤醒

Python接口

speech.enable_hexaware(enable, block=True, timeout=5)

功能说明
启用或禁用 Hexaware 唤醒词检测引擎。

参数说明

参数名类型必填/默认值说明
enablebool必填True 启用,False 禁用。
blockbool默认: TrueTrue 时阻塞等待完成。
timeoutint默认: 5超时时间(秒)。

返回值

类型说明
EnableServiceResponsestate.code == 0 表示成功。

speech.enable_kws(enable, block=True, timeout=5)

功能说明
启用或禁用关键词识别(KWS)。

参数说明

参数名类型必填/默认值说明
enablebool必填True 启用,False 禁用。
blockbool默认: TrueTrue 时阻塞等待完成。
timeoutint默认: 5超时时间(秒)。

返回值

类型说明
EnableServiceResponsestate.code == 0 表示成功。

TTS 语音合成

Python接口

speech.enable_tts(enable, block=True, timeout=5)

功能说明
启用或禁用文字转语音(TTS)引擎。

参数说明

参数名类型必填/默认值说明
enablebool必填True 启用,False 禁用。
blockbool默认: TrueTrue 时阻塞等待完成。
timeoutint默认: 5超时时间(秒)。

返回值

类型说明
EnableServiceResponsestate.code == 0 表示成功。

speech.generate_audio(text, block=True, timeout=30)

功能说明
将文本转换为语音并播放。支持阻塞(等待播放完成)和非阻塞(立即返回 AudioFuture)两种模式。

参数说明

参数名类型必填/默认值说明
textstr必填要合成和播放的文本内容。
blockbool默认: TrueTrue 时阻塞直到播放完成;False 时立即返回。
timeoutint默认: 30超时时间(秒)。

返回值

类型说明
GenerateAudioResponseblock=True 时返回播放结果;block=Falseresponse.futureAudioFuture,可调用 .get(timeout) 等待结果。

调用示例

python
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 语音。

参数说明

参数名类型必填/默认值说明
timeoutint默认: 5超时时间(秒)。

返回值

类型说明
EnableServiceResponsestate.code == 0 表示成功。

speech.cancel_generate_audio(timeout=5)

功能说明
取消正在进行的音频生成任务。

参数说明

参数名类型必填/默认值说明
timeoutint默认: 5超时时间(秒)。

返回值

类型说明
EnableServiceResponsestate.code == 0 表示成功。

speech.switch_tts_device(device, block=True, timeout=5)

功能说明
切换 TTS 使用的音频输出设备。

参数说明

参数名类型必填/默认值说明
devicestr必填目标音频设备名称。
blockbool默认: TrueTrue 时阻塞等待完成。
timeoutint默认: 5超时时间(秒)。

返回值

类型说明
EnableServiceResponsestate.code == 0 表示成功。

事件回调

Python接口

speech.register_asr_callback(callback)

功能说明
注册 ASR 语音识别结果回调。每当识别到语音时触发,event.is_finalTrue 表示最终识别结果。

调用示例

python
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 音频生成的进度和完成回调。

调用示例

python
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
)