# wake_word
**Repository Path**: qingtinggit/wake_word
## Basic Information
- **Project Name**: wake_word
- **Description**: 唤醒词,比如唤醒小度音箱的“小度小度",华为手机的”小艺小艺“,这个版本是nodejs的版本,代码简短易用,教你创建唤醒词,本工程则是使用唤醒词,有清晰的调试内容和成功提示。工程师在电脑上应该会比较好用。
提示:用个好点的麦克风,用清晰的语句叫出唤醒词,有提示成功的话,要间隔一下再叫,连着狂叫可能不会连着提示。
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-07-31
- **Last Updated**: 2025-07-31
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
#唤醒词
主要教学中文版
##环境和软件:
下载 SoX 的 Windows 版本: https://sourceforge.net/projects/sox/files/sox/
安装后,将 SoX 的安装目录(如 D:\ProgramFiles (x86)\sox-14-4-2)添加到系统的 PATH 环境变量中
nodejs v18.20.8
https://nodejs.org/en/download
找到.msi文件下载,如果是windows的话
没有ubuntu环境也没关系,跳过这一段即可。
##唤醒词录入方式1(ubuntu环境)
Python 3.7
https://github.com/rhasspy/rhasspy-wake-raven?tab=readme-ov-file
```bash
$ git clone https://github.com/rhasspy/rhasspy-wake-raven.git
$ cd rhasspy-wake-raven
$ ./configure
$ make
$ make install
arecord -r 16000 -f S16_LE -c 1 -t raw | bin/rhasspy-wake-raven --record keyword-dir/
```
##唤醒词录入方式2(windows环境)
唤醒词录入,这段要在cmd中执行,不要在powershell中
```cmd
sox -t waveaudio "麦克风 (USB FS AUDIO)" ^
-b 16 -e signed-integer -r 16000 -c 1 ^
--endian little ^
wakeword.wav ^
silence 1 0.1 1% 1 2.0 1% ^
trim 0 3
```
##如果是录制3次样例可以按如下命令进行:
```cmd
:: 第一次
sox -t waveaudio "麦克风 (USB FS AUDIO)" ^
-b 16 -e signed-integer -r 16000 -c 1 ^
--endian little ^
你好小黑_1.wav ^
silence 1 0.1 1% 1 2.0 1% ^
trim 0 3
:: 第二次(等待3秒后执行)
timeout /t 3
sox -t waveaudio "麦克风 (USB FS AUDIO)" ^
-b 16 -e signed-integer -r 16000 -c 1 ^
--endian little ^
你好小黑_2.wav ^
silence 1 0.1 1% 1 2.0 1% ^
trim 0 3
:: 第三次
timeout /t 3
sox -t waveaudio "麦克风 (USB FS AUDIO)" ^
-b 16 -e signed-integer -r 16000 -c 1 ^
--endian little ^
你好小黑_3.wav ^
silence 1 0.1 1% 1 2.0 1% ^
trim 0 3
```
##模块依赖
```cmd
npm i @mathquis/node-personal-wakeword mic
npm list mic
npm install node-wav-player #可以不用,不过语音反馈更直接一些
```
版本是@2.1.2
##获取麦克风名称
powershell执行
```cmd
> Get-AudioDevice -Recording | Format-List Name,ID
```
Get-AudioDevice : 无法将“Get-AudioDevice”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包
括路径,请确保路径正确,然后再试一次。
所在位置 行:1 字符: 1
+ Get-AudioDevice -Recording | Format-List Name,ID
+ ~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Get-AudioDevice:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
如果报上面的错,powershell执行
```cmd
Install-Module -Name AudioDeviceCmdlets -Force -AllowClobber
Import-Module AudioDeviceCmdlets
```
##一切就绪,执行唤醒词测试
比如录入的唤醒词是 ”你好二狗“
那么我们就在wake_ch.js中第五行改成:
```js
const words = '你好二狗'
```
录入的唤醒词在keywords文件夹下分别为:你好二狗_1.wav, 你好二狗_2.wav, 你好二狗_3.wav
然后在工程目录下运行
```cmd
node wake_ch.js
```
对着麦克风喊提示词看是否有反应即可。
要听到语音的直接反馈就用下面这个文件:
```cmd
node wake_ch_voice.js
```