语言
钜犀KWS唤醒声卡是一款高性能离线语音识别模块,专为嵌入式系统、机器人和物联网应用设计。它支持本地处理,不依赖云端,提供快速、可靠的语音控制,延迟极低,非常适用于需要快速响应和数据隐私的场景。
主要特点
- ✅ 100%离线处理:所有语音识别都在模块本地运行,无需互联网连接,确保数据隐私和低延迟
- 🎤 高识别准确率:支持中英文语音指令,在正常环境下识别准确率>95%
- ⚡ 超低延迟:语音指令输入后300ms内响应,提供实时控制体验
- 🔧 高度可定制:通过官方固件配置工具支持自定义唤醒词和命令短语
- 🖥️ 多平台支持:兼容树莓派、Jetson Nano、x86 PC以及ROS/ROS2机器人系统
- 🔌 即插即用:标准USB HID接口,无需额外硬件即可操作
- 🎛️ 集成音频输出:内置扬声器驱动,可提供语音反馈响应
- 💡 低功耗:平均工作电流< 50mA,适用于电池供电设备
基本功能
默认唤醒词
模块预设了出厂默认唤醒词:
- 中文:“你好小犀”、“小犀小犀”、“钜犀”
- 英文:“Hello Xiaoxi”、“Juxi Technology”
支持的指令类别
模块支持多达100个自定义语音指令,包括:
- 运动控制:前进、后退、左转、右转、停止
- 灯光控制:开灯/关灯、改变灯光颜色(红、绿、蓝、黄)
- 系统控制:休眠模式、唤醒、返回原点
- 执行器控制:夹具打开/关闭、电机速度调节
- 自定义指令:针对特定应用完全可定制的指令集
通信协议
模块使用简单可靠的串口协议:
- 波特率:115200
- 数据位:8
- 停止位:1
- 奇偶校验:无
- 帧格式:
0xAA 0x55 [Command Type] [Command ID] 0xFB
快速开始
基本串口通信示例 (Python)
以下是一个从模块读取语音指令的最小工作示例:
#!/usr/bin/env python3
import serial
import time
# Configure serial port (adjust port name for your system)
# Windows: "COM3", "COM4", etc.
# Linux: "/dev/ttyUSB0", "/dev/ttyACM0", etc.
ser = serial.Serial('/dev/ttyUSB0', 115200, timeout=0.01)
# Command mapping dictionary
COMMANDS = {
(0x00, 0x01): "Stop",
(0x00, 0x04): "Move forward",
(0x00, 0x05): "Move backward",
(0x00, 0x06): "Turn left",
(0x00, 0x07): "Turn right",
(0x00, 0x0A): "Turn off light",
(0x00, 0x0B): "Turn on red light",
(0x00, 0x0C): "Turn on green light",
(0x00, 0x0D): "Turn on blue light",
(0x00, 0x0E): "Turn on yellow light",
(0x00, 0x21): "Return to origin",
(0x00, 0x27): "Move up",
(0x00, 0x28): "Move down",
(0x00, 0x2B): "Grip close",
(0x00, 0x2C): "Grip open",
(0x00, 0x03): "System sleep"
}
WAKE_WORDS = {
0x01: "Hello Xiaoxi",
0x02: "Xiaoxi Xiaoxi",
0x03: "Juxi Technology"
}
def read_voice_command():
"""Read and parse voice command frames from serial port"""
if ser.in_waiting >= 5:
frame = ser.read(5)
# Verify frame header and footer
if frame[0] == 0xAA and frame[1] == 0x55 and frame[4] == 0xFB:
# Wake word detected
if frame[3] == 0x00:
return f"[WAKE] {WAKE_WORDS.get(frame[2], 'Unknown wake word')}"
# Command received
else:
cmd = COMMANDS.get((frame[2], frame[3]), f"Unknown command: {frame[2]}:{frame[3]}")
return f"[COMMAND] {cmd}"
return None
# Main execution loop
if __name__ == "__main__":
try:
print("KWS Wake-up Sound Card Test")
print("Listening for voice commands... (Press Ctrl+C to exit)")
print("-" * 50)
while True:
result = read_voice_command()
if result:
print(result)
time.sleep(0.01)
except KeyboardInterrupt:
ser.close()
print("\n" + "-" * 50)
print("Program terminated")
使用说明
- 通过USB端口将KWS声卡连接到您的设备
- 如果需要,安装CH341串口驱动(可在以下链接获取:https://www.wch.cn/downloads/CH341SER_EXE.html)
- 修改代码中的串口名称以匹配您的系统
- 运行Python脚本
- 说出唤醒词(“你好小犀”)以激活模块
- 在确认音后5秒内说出您的指令
- 模块将识别并通过串口输出指令
高级应用:ROS2集成
该模块与ROS2(机器人操作系统2)无缝集成,可用于机器人应用。以下是一个简化的语音控制节点示例:
#!/usr/bin/env python3
import rclpy
from rclpy.node import Node
from std_msgs.msg import String
import serial
class KWSVoiceControlNode(Node):
def __init__(self):
super().__init__('kws_voice_control_node')
# Create publisher for voice commands
self.cmd_publisher = self.create_publisher(String, '/kws/voice_command', 10)
# Initialize serial port
self.ser = serial.Serial('/dev/ttyUSB0', 115200, timeout=0.01)
# Create timer for serial reading
self.timer = self.create_timer(0.01, self.serial_read_callback)
self.get_logger().info("KWS Voice Control Node started successfully")
self.get_logger().info("Listening for wake words and commands...")
def serial_read_callback(self):
"""Read and process serial data"""
if self.ser.in_waiting >= 5:
frame = self.ser.read(5)
if frame[0] == 0xAA and frame[1] == 0x55 and frame[4] == 0xFB:
msg = String()
# Process wake event
if frame[3] == 0x00:
wake_word = {0x01: "hello_xiaoxi", 0x02: "xiaoxi_xiaoxi", 0x03: "juxi"}.get(frame[2], "unknown")
msg.data = f"wake:{wake_word}"
self.get_logger().info(f"Wake up detected: {wake_word}")
# Process command event
else:
cmd_data = f"{frame[2]}:{frame[3]}"
msg.data = f"command:{cmd_data}"
self.get_logger().info(f"Command received: {cmd_data}")
# Publish message
self.cmd_publisher.publish(msg)
def main(args=None):
rclpy.init(args=args)
node = KWSVoiceControlNode()
try:
rclpy.spin(node)
except KeyboardInterrupt:
node.get_logger().info("Node interrupted by user")
finally:
node.destroy_node()
rclpy.shutdown()
if __name__ == '__main__':
main()
典型应用场景
- 🤖 机器人:用于移动机器人、机械臂、无人机和服务机器人的语音控制
- 🏠 智能家居:用于灯光系统、家电、窗帘控制和安防系统的语音控制
- 🏭 工业控制:用于工业设备、生产线和车间控制的免提操作
- 🚗 汽车:用于车载信息娱乐、气候控制和车辆功能的语音控制系统
- 🎮 物联网设备:用于智能音箱、智能显示器和其他互联设备的语音交互
- 🎓 教育与研究:用于语音交互项目和机器人研究的开发平台
技术规格
| 参数 | 规格 |
|---|---|
| 芯片组 | CI1302高性能语音识别SoC |
| 识别距离 | 0.5m ~ 5m(可调) |
| 响应时间 | < 300ms |
| 识别准确率 | > 95%(安静环境,背景噪音< 60dB) |
| 支持语言 | 中文,英文(可定制其他语言) |
| 通信接口 | USB串口 (CDC-ACM),115200波特率 |
| 工作电压 | 5V DC(USB供电) |
| 工作电流 | < 50mA(激活模式),< 10mA(空闲模式) |
| 工作温度 | -10°C ~ 60°C |
| 存储温度 | -20°C ~ 85°C |
| 尺寸 | 40mm x 30mm x 10mm |
| 音频输出 | 1W扬声器驱动输出 |
| 麦克风 | 内置高灵敏度MEMS麦克风 |
固件定制
模块支持完全自定义唤醒词和指令集:
- 访问启英泰伦语音AI平台
- 创建新项目,配置CI1302芯片
- 添加您的自定义唤醒词和指令短语
- 配置响应提示音和播报内容
- 编译并下载定制固件
- 使用官方烧录工具将固件烧录到模块中
资源与支持
- 钜犀科技Github:官方开源代码、示例和开发资源
- 飞书维基:完整的文档、用户指南和技术支持

