shootao/esp_coze_ws_tts_asr

0.1.0

Latest
uploaded 22 hours ago
Coze websocket ASR and TTS component for ESP boards

readme

# esp_coze_ws_tts_asr

`esp_coze_ws_tts_asr` 是一个基于 Coze WebSocket 的 ASR / TTS 组件,当前主要用于 ESP 板端语音交互场景。

对应 example:

- `components/esp_coze_ws_tts_asr/examples/esp_coze_ws_tts_asr`

## 功能

- 支持只开 ASR、只开 TTS,或者同时开启
- 统一的发送接口
- 支持 WebSocket 事件回调
- 支持下行音频回调
- 组件本身不依赖板级 codec,音频输入输出由应用层处理

## 主要接口

- `esp_coze_ws_tts_asr_init()`
- `esp_coze_ws_tts_asr_start()`
- `esp_coze_ws_tts_asr_send()`
- `esp_coze_ws_tts_asr_stop()`
- `esp_coze_ws_tts_asr_deinit()`

## 基本流程

1. 配置 `esp_coze_ws_tts_asr_config_t`
2. 设置 `bot_id`、`access_token`
3. 注册 `event_cb`,需要的话注册 `tts.audio_cb`
4. 调用 `esp_coze_ws_tts_asr_init()`
5. 调用 `esp_coze_ws_tts_asr_start()`
6. TTS 发送 `ESP_COZE_WS_TTS_ASR_SEND_TYPE_TTS_TEXT`
7. 应用层自己读取麦克风数据后发送 `ESP_COZE_WS_TTS_ASR_SEND_TYPE_ASR_AUDIO`
8. 一轮 ASR 结束后发送 `ESP_COZE_WS_TTS_ASR_SEND_TYPE_ASR_AUDIO_COMPLETE`

## 事件说明

- `ESP_COZE_WS_TTS_ASR_EVENT_ASR_UPDATED`
  ASR 中间识别结果,`data` 是解析后的文本
- `ESP_COZE_WS_TTS_ASR_EVENT_ASR_COMPLETED`
  ASR 完成事件,`data` 是解析后的文本
- `ESP_COZE_WS_TTS_ASR_EVENT_CHAT_COMPLETED`
  对话完成事件
- `ESP_COZE_WS_TTS_ASR_EVENT_ERROR`
  错误事件

回调里:

- `data` 是解析后的内容
- `payload` 是服务端原始 JSON

Coze 官方事件文档:

- ASR: https://www.coze.cn/open/docs/developer_guides/asr_event
- TTS: https://www.coze.cn/open/docs/developer_guides/tts_event

## TTS 音色

`voice_id` 可参考 Coze 官方音色列表:

- https://www.coze.cn/open/docs/developer_guides/list_voices

## Kconfig

- `ESP_COZE_WS_TTS_ASR_ENABLE_DEBUG_LOG`

打开后会打印上下行 JSON,音频字段会做裁剪。

Links

Target

License: Custom

To add this component to your project, run:

idf.py add-dependency "shootao/esp_coze_ws_tts_asr^0.1.0"

download archive

Stats

  • Archive size
    Archive size ~ 21.74 KB
  • Downloaded in total
    Downloaded in total 0 times
  • Downloaded this version
    This version: 0 times

Badge

shootao/esp_coze_ws_tts_asr version: 0.1.0
|