Audio Control Service
About 1950 wordsAbout 7 min
2025-01-27
Provides robot system audio service controller. Through the
AudioController
, you can control robot audio and obtain status via RPC methods.
Interface Definition
AudioController
is a Python class that encapsulates audio control functionality, mainly used for audio playback control, TTS playback, volume setting and query, etc.
AudioController
Item | Content |
---|---|
Class Name | AudioController |
Constructor | controller = AudioController() |
Function Overview | Initialize audio controller object, construct internal state, allocate resources, etc. |
Notes | Constructs internal state. |
initialize
Item | Content |
---|---|
Function Name | initialize |
Function Declaration | bool initialize() |
Function Overview | Initialize audio control module, prepare playback resources and devices. |
Return Value | True indicates success, False indicates failure. |
Notes | Used in conjunction with shutdown() . |
shutdown
Item | Content |
---|---|
Function Name | shutdown |
Function Declaration | void shutdown() |
Function Overview | Shutdown audio controller and release resources. |
Notes | Ensure to call before destruction. |
play
Item | Content |
---|---|
Function Name | play |
Function Declaration | Status play(TtsCommand cmd) |
Function Overview | Play TTS (Text-to-Speech) audio command. |
Parameter Description | cmd : TTS command, containing text, speech rate, tone, etc. |
Return Value | Status object, Status.code == ErrorCode.OK indicates success. |
Notes | Blocking interface, ensure module is initialized before calling. |
stop
Item | Content |
---|---|
Function Name | stop |
Function Declaration | Status stop() |
Function Overview | Stop current audio playback. |
Return Value | Status object, Status.code == ErrorCode.OK indicates success. |
Notes | Blocking interface, usually used to interrupt current speech. |
set_volume
Item | Content |
---|---|
Function Name | set_volume |
Function Declaration | Status set_volume(int volume) |
Function Overview | Set audio output volume. |
Parameter Description | volume : Volume value, usually in range 0~100. |
Return Value | Status object, Status.code == ErrorCode.OK indicates success. |
Notes | Blocking interface, takes effect immediately after setting. |
get_volume
Item | Content |
---|---|
Function Name | get_volume |
Function Declaration | tuple[Status, int] get_volume() |
Function Overview | Get current audio output volume. |
Return Value | Returns tuple (Status, volume) , Status.code == ErrorCode.OK indicates success. |
Notes | Blocking interface, return value needs to be checked before using volume . |
open_audio_stream
Item | Content |
---|---|
Function Name | open_audio_stream |
Function Declaration | Status open_audio_stream() |
Function Overview | Open audio stream, prepare for audio playback. |
Return Value | Status object, Status.code == ErrorCode.OK indicates success. |
Notes | Blocking interface, return value needs to be checked for successful execution |
close_audio_stream
Item | Content |
---|---|
Function Name | close_audio_stream |
Function Declaration | Status close_audio_stream() |
Function Overview | Close audio stream. |
Return Value | Status object, Status.code == ErrorCode.OK indicates success. |
Notes | Blocking interface, return value needs to be checked for successful execution |
subscribe_origin_audio_stream
Item | Content |
---|---|
Function Name | subscribe_origin_audio_stream |
Function Declaration | void subscribe_origin_audio_stream(callback) |
Function Overview | Subscribe to original audio stream data. |
Parameter Description | callback: Data processing function after receiving data, signature is callback(data: AudioStream) -> None |
Notes | Non-blocking interface. |
subscribe_bf_audio_stream
Item | Content |
---|---|
Function Name | subscribe_bf_audio_stream |
Function Declaration | void subscribe_bf_audio_stream(callback) |
Function Overview | Subscribe to BF audio stream data. |
Parameter Description | callback: Data processing function after receiving data, signature is callback(data: AudioStream) -> None |
Notes | Non-blocking interface. |
Type Definitions
TtsPriority
— TTS Playback Priority Level
Used to control interrupt behavior between different TTS tasks. Higher priority tasks will interrupt playback of current lower priority tasks.
Enumeration Value | Description |
---|---|
TtsPriority.HIGH | Highest priority, e.g.: low battery warning, emergency alert |
TtsPriority.MIDDLE | Medium priority, e.g.: system prompts, status announcements |
TtsPriority.LOW | Lowest priority, e.g.: daily voice conversation, background announcements |
TtsMode
— Task Scheduling Strategy Under Same Priority
Used to refine control of playback order and clearing logic for multiple TTS tasks under the same priority condition.
Enumeration Value | Description |
---|---|
TtsMode.CLEARTOP | Clear all tasks of current priority (including currently playing and waiting queue), immediately play this request |
TtsMode.ADD | Append this request to the end of current priority queue, play in order (without interrupting current playback) |
TtsMode.CLEARBUFFER | Clear unplayed requests in queue, keep current playback, then play this request |
Structure Definitions
TtsCommand
— TTS Playback Command Structure
Describes complete information for a TTS playback request, supporting setting unique identifier, text content, priority control, and scheduling mode under same priority.
Field Name | Type | Description |
---|---|---|
id | str | TTS task unique ID, e.g. "id_01" , used to track playback status |
content | str | Text content to be played, e.g. "Hello, welcome to the intelligent voice system." |
priority | TtsPriority | Playback priority, controls whether to interrupt currently playing low-priority speech |
mode | TtsMode | Scheduling strategy under same priority, controls whether tasks are appended, overridden, etc. |
AudioStream
- Audio Stream Structure
Describes raw audio stream or BF audio stream data.
Field Name | Type | Description |
---|---|---|
data_length | int | Data length |
raw_data | bytes | Audio stream data |