diff --git a/unitree_sdk2_python-master/example/g1/audio/async_audio.py b/unitree_sdk2_python-master/example/g1/audio/async_audio.py new file mode 100644 index 0000000..50a5e64 --- /dev/null +++ b/unitree_sdk2_python-master/example/g1/audio/async_audio.py @@ -0,0 +1,42 @@ +import asyncio +import concurrent.futures +import json +from unitree_sdk2py.g1.audio.g1_audio_client import AudioClient + + +# ROBOT_API_ID_AUDIO_TTS = 1001 +# ROBOT_API_ID_AUDIO_ASR = 1002 +# ROBOT_API_ID_AUDIO_START_PLAY = 1003 +# ROBOT_API_ID_AUDIO_STOP_PLAY = 1004 +# ROBOT_API_ID_AUDIO_GET_VOLUME = 1005 +# ROBOT_API_ID_AUDIO_SET_VOLUME = 1006 +# ROBOT_API_ID_AUDIO_SET_RGB_LED = 1010 + + + +class AsyncAudioClient(AudioClient): + def __init__(self): + super().__init__() + self.executor = concurrent.futures.ThreadPoolExecutor() + + async def async_tts_maker(self, text: str, speaker_id: int): + loop = asyncio.get_event_loop() + return await loop.run_in_executor( + self.executor, + self.TtsMaker, + text, + speaker_id + ) + + +async def main(): + async_audio_client = AsyncAudioClient() + async_audio_client.Init() + + # 并发执行多个TTS任务 + tasks = [ + async_audio_client.async_tts_maker("Hello", 0), + async_audio_client.async_tts_maker("World", 0) + ] + + results = await asyncio.gather(*tasks) \ No newline at end of file