unitree_sdk2_python/unitree_sdk2py/g1/audio/g1_audio_client.py

63 lines
1.8 KiB
Python

import json
from ...rpc.client import Client
from .g1_audio_api import *
"""
" class SportClient
"""
class AudioClient(Client):
def __init__(self):
super().__init__(AUDIO_SERVICE_NAME, False)
self.tts_index = 0
def Init(self):
# set api version
self._SetApiVerson(AUDIO_API_VERSION)
# regist api
self._RegistApi(ROBOT_API_ID_AUDIO_TTS, 0)
self._RegistApi(ROBOT_API_ID_AUDIO_ASR, 0)
self._RegistApi(ROBOT_API_ID_AUDIO_START_PLAY, 0)
self._RegistApi(ROBOT_API_ID_AUDIO_STOP_PLAY, 0)
self._RegistApi(ROBOT_API_ID_AUDIO_GET_VOLUME, 0)
self._RegistApi(ROBOT_API_ID_AUDIO_SET_VOLUME, 0)
self._RegistApi(ROBOT_API_ID_AUDIO_SET_RGB_LED, 0)
## API Call ##
def TtsMaker(self, text: str, speaker_id: int):
self.tts_index += self.tts_index
p = {}
p["index"] = self.tts_index
p["text"] = text
p["speaker_id"] = speaker_id
parameter = json.dumps(p)
code, data = self._Call(ROBOT_API_ID_AUDIO_TTS, parameter)
return code
def GetVolume(self):
p = {}
parameter = json.dumps(p)
code, data = self._Call(ROBOT_API_ID_AUDIO_GET_VOLUME, parameter)
if code == 0:
return code, json.loads(data)
else:
return code, None
def SetVolume(self, volume: int):
p = {}
p["volume"] = volume
# p["name"] = 'volume'
parameter = json.dumps(p)
code, data = self._Call(ROBOT_API_ID_AUDIO_SET_VOLUME, parameter)
return code
def LedControl(self, R: int, G: int, B: int):
p = {}
p["R"] = R
p["G"] = G
p["B"] = B
parameter = json.dumps(p)
code, data = self._Call(ROBOT_API_ID_AUDIO_SET_RGB_LED, parameter)
return code