fix run issues
This commit is contained in:
@@ -7,7 +7,7 @@ endif()
|
||||
|
||||
find_package(ament_cmake REQUIRED)
|
||||
find_package(ament_cmake_python REQUIRED)
|
||||
find_package(rosidl_default_generators REQUIRED)
|
||||
find_package(interfaces REQUIRED)
|
||||
|
||||
# 确保使用系统 Python(而不是 conda/miniconda 的 Python)
|
||||
find_program(PYTHON3_CMD python3 PATHS /usr/bin /usr/local/bin NO_DEFAULT_PATH)
|
||||
@@ -19,13 +19,6 @@ if(PYTHON3_CMD)
|
||||
set(PYTHON_EXECUTABLE ${PYTHON3_CMD} CACHE FILEPATH "Python executable" FORCE)
|
||||
endif()
|
||||
|
||||
rosidl_generate_interfaces(${PROJECT_NAME}
|
||||
"srv/ASRRecognize.srv"
|
||||
"srv/TTSSynthesize.srv"
|
||||
"srv/VADEvent.srv"
|
||||
"srv/AudioData.srv"
|
||||
)
|
||||
|
||||
install(CODE "
|
||||
execute_process(
|
||||
COMMAND ${PYTHON3_CMD} -m pip install --prefix=${CMAKE_INSTALL_PREFIX} --no-deps ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
@@ -77,25 +70,6 @@ if robot_speaker_src:
|
||||
print(f'Copied robot_speaker from {robot_speaker_src} to {ros2_site_packages}')
|
||||
else:
|
||||
print(f'robot_speaker already in correct location')
|
||||
|
||||
# 复制 ROS2 生成的 srv 模块(rosidl_generate_interfaces 生成的)
|
||||
rosidl_py_src = os.path.join(build_dir, 'rosidl_generator_py', 'robot_speaker')
|
||||
if os.path.exists(rosidl_py_src):
|
||||
# 复制 srv 目录
|
||||
srv_src = os.path.join(rosidl_py_src, 'srv')
|
||||
srv_dest = os.path.join(robot_speaker_dest, 'srv')
|
||||
if os.path.exists(srv_src):
|
||||
if os.path.exists(srv_dest):
|
||||
shutil.rmtree(srv_dest)
|
||||
shutil.copytree(srv_src, srv_dest)
|
||||
print(f'Copied srv module to {srv_dest}')
|
||||
|
||||
# 复制生成的接口文件(.so 和 .c 文件)
|
||||
for pattern in ['robot_speaker_s__rosidl_typesupport*.so', '_robot_speaker_s*.c']:
|
||||
for file in glob.glob(os.path.join(rosidl_py_src, pattern)):
|
||||
dest_file = os.path.join(robot_speaker_dest, os.path.basename(file))
|
||||
shutil.copy2(file, dest_file)
|
||||
print(f'Copied {os.path.basename(file)} to {robot_speaker_dest}')
|
||||
|
||||
# 处理 entry_points 脚本
|
||||
lib_dir = os.path.join(install_prefix, 'lib', 'robot_speaker')
|
||||
|
||||
@@ -55,12 +55,12 @@ system:
|
||||
session_timeout: 3.0 # 会话超时时间(秒)
|
||||
shutup_keywords: "bi zui" # 闭嘴指令关键词(拼音,逗号分隔)
|
||||
interrupt_command_queue_depth: 10 # 中断命令订阅的队列深度(QoS)
|
||||
sv_enabled: true # 是否启用声纹识别
|
||||
# sv_model_path: "~/hivecore_robot_os1/voice_model" # 声纹模型路径
|
||||
sv_model_path: "~/ros_learn/speech_campplus_sv_zh-cn_16k-common" # 声纹模型路径
|
||||
sv_enabled: false # 是否启用声纹识别
|
||||
sv_model_path: "~/hivecore_robot_os1/voice_model" # 声纹模型路径
|
||||
# sv_model_path: "~/ros_learn/speech_campplus_sv_zh-cn_16k-common" # 声纹模型路径
|
||||
sv_threshold: 0.65 # 声纹识别阈值(0.0-1.0,值越小越宽松,值越大越严格)
|
||||
# sv_speaker_db_path: "~/hivecore_robot_os1/config/speakers.json" # 声纹数据库保存路径(JSON格式,相对于ROS2包share目录)
|
||||
sv_speaker_db_path: "~/ros_learn/hivecore_robot_voice/config/speakers.json" # 声纹数据库保存路径(JSON格式,相对于ROS2包share目录)
|
||||
sv_speaker_db_path: "~/hivecore_robot_os1/config/speakers.json" # 声纹数据库保存路径(JSON格式,相对于ROS2包share目录)
|
||||
# sv_speaker_db_path: "~/ros_learn/hivecore_robot_voice/config/speakers.json" # 声纹数据库保存路径(JSON格式,相对于ROS2包share目录)
|
||||
sv_buffer_size: 96000 # 声纹验证录音缓冲区大小(样本数,48kHz下2秒=96000)
|
||||
continue_without_image: true # 多模态意图(skill_sequence/chat_camera)未获取到图片时是否继续推理
|
||||
|
||||
@@ -69,5 +69,5 @@ camera:
|
||||
jpeg_quality: 85 # JPEG压缩质量(0-100,85是质量和大小平衡点)
|
||||
|
||||
interfaces:
|
||||
# root_path: "~/hivecore_robot_os1/hivecore_robot_interfaces/src" # 接口文件根目录,支持 ~ 展开和相对路径
|
||||
root_path: "~/ros_learn/hivecore_robot_interfaces/src" # 接口文件根目录,支持 ~ 展开和相对路径
|
||||
root_path: "~/hivecore_robot_os1/hivecore_robot_interfaces/src" # 接口文件根目录,支持 ~ 展开和相对路径
|
||||
# root_path: "~/ros_learn/hivecore_robot_interfaces/src" # 接口文件根目录,支持 ~ 展开和相对路径
|
||||
|
||||
@@ -15,9 +15,6 @@
|
||||
<depend>interfaces</depend>
|
||||
<buildtool_depend>ament_cmake</buildtool_depend>
|
||||
<buildtool_depend>ament_cmake_python</buildtool_depend>
|
||||
<buildtool_depend>rosidl_default_generators</buildtool_depend>
|
||||
<exec_depend>rosidl_default_runtime</exec_depend>
|
||||
<member_of_group>rosidl_interface_packages</member_of_group>
|
||||
|
||||
<exec_depend>python3-pyaudio</exec_depend>
|
||||
<exec_depend>python3-requests</exec_depend>
|
||||
|
||||
@@ -9,7 +9,7 @@ import queue
|
||||
import rclpy
|
||||
from rclpy.node import Node
|
||||
from ament_index_python.packages import get_package_share_directory
|
||||
from robot_speaker.srv import ASRRecognize, AudioData, VADEvent
|
||||
from interfaces.srv import ASRRecognize, AudioData, VADEvent
|
||||
from robot_speaker.core.speaker_verifier import SpeakerVerificationClient
|
||||
from pypinyin import pinyin, Style
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ import os
|
||||
import yaml
|
||||
from typing import Optional
|
||||
from ament_index_python.packages import get_package_share_directory
|
||||
from robot_speaker.srv import VADEvent, ASRRecognize, TTSSynthesize, AudioData
|
||||
from interfaces.srv import VADEvent, ASRRecognize, TTSSynthesize, AudioData
|
||||
from openai import OpenAI
|
||||
from robot_speaker.core.context_manager import ConversationHistory
|
||||
from robot_speaker.core.speaker_verifier import SpeakerVerificationClient, SpeakerState
|
||||
|
||||
@@ -29,8 +29,8 @@ class SpeakerVerificationClient:
|
||||
self._lock = threading.Lock()
|
||||
|
||||
# # 优化CPU性能:限制Torch使用的线程数,防止多线程竞争导致性能骤降
|
||||
# import torch
|
||||
# torch.set_num_threads(1)
|
||||
import torch
|
||||
torch.set_num_threads(1)
|
||||
|
||||
from funasr import AutoModel
|
||||
model_path = os.path.expanduser(self.model_path)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import rclpy
|
||||
from rclpy.node import Node
|
||||
from robot_speaker.srv import ASRRecognize, AudioData, VADEvent
|
||||
from interfaces.srv import ASRRecognize, AudioData, VADEvent
|
||||
import threading
|
||||
import queue
|
||||
import time
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import rclpy
|
||||
from rclpy.node import Node
|
||||
from rclpy.callback_groups import ReentrantCallbackGroup
|
||||
from robot_speaker.srv import TTSSynthesize
|
||||
from interfaces.srv import TTSSynthesize
|
||||
import threading
|
||||
import yaml
|
||||
import os
|
||||
|
||||
Reference in New Issue
Block a user