update g1 audio api and g1_audio_client_example
This commit is contained in:
parent
0f170964af
commit
f17114c8f5
|
@ -0,0 +1,44 @@
|
||||||
|
import time
|
||||||
|
import sys
|
||||||
|
from unitree_sdk2py.core.channel import ChannelSubscriber, ChannelFactoryInitialize
|
||||||
|
from unitree_sdk2py.g1.audio.g1_audio_client import AudioClient
|
||||||
|
from unitree_sdk2py.g1.loco.g1_loco_client import LocoClient
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
if len(sys.argv) < 2:
|
||||||
|
print(f"Usage: python3 {sys.argv[0]} networkInterface")
|
||||||
|
sys.exit(-1)
|
||||||
|
|
||||||
|
ChannelFactoryInitialize(0, sys.argv[1])
|
||||||
|
|
||||||
|
audio_client = AudioClient()
|
||||||
|
audio_client.SetTimeout(10.0)
|
||||||
|
audio_client.Init()
|
||||||
|
|
||||||
|
sport_client = LocoClient()
|
||||||
|
sport_client.SetTimeout(10.0)
|
||||||
|
sport_client.Init()
|
||||||
|
|
||||||
|
ret = audio_client.GetVolume()
|
||||||
|
print("debug GetVolume: ",ret)
|
||||||
|
|
||||||
|
audio_client.SetVolume(85)
|
||||||
|
|
||||||
|
ret = audio_client.GetVolume()
|
||||||
|
print("debug GetVolume: ",ret)
|
||||||
|
|
||||||
|
sport_client.WaveHand()
|
||||||
|
|
||||||
|
audio_client.TtsMaker("大家好!我是宇树科技人形机器人。语音开发测试例程运行成功! 很高兴认识你!",0)
|
||||||
|
time.sleep(8)
|
||||||
|
audio_client.TtsMaker("接下来测试灯带开发例程!",0)
|
||||||
|
time.sleep(1)
|
||||||
|
audio_client.LedControl(255,0,0)
|
||||||
|
time.sleep(1)
|
||||||
|
audio_client.LedControl(0,255,0)
|
||||||
|
time.sleep(1)
|
||||||
|
audio_client.LedControl(0,0,255)
|
||||||
|
|
||||||
|
time.sleep(3)
|
||||||
|
audio_client.TtsMaker("测试完毕,谢谢大家!",0)
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
"""
|
||||||
|
" service name
|
||||||
|
"""
|
||||||
|
AUDIO_SERVICE_NAME = "voice"
|
||||||
|
|
||||||
|
"""
|
||||||
|
" service api version
|
||||||
|
"""
|
||||||
|
AUDIO_API_VERSION = "1.0.0.0"
|
||||||
|
|
||||||
|
"""
|
||||||
|
" api id
|
||||||
|
"""
|
||||||
|
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
|
||||||
|
|
||||||
|
"""
|
||||||
|
" error code
|
||||||
|
"""
|
|
@ -0,0 +1,62 @@
|
||||||
|
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
|
Loading…
Reference in New Issue