Train hotword cho Loa thông minh Google Assistant tiếng Việt bằng PC

Dạo gần đây các bạn đã biết đến bài hướng dẫn của bạn Tín bên Kênh Táy máy về việc DYI Loa thông minh Google Assistant tiếng Việt bằng Orange Pi Zero và bo mở rộng. Link bài viết https://hs2t.com/blog/loa-google-assistant-tieng-viet/

Trên thực tế, trước đây Orange Pi Việt Nam cũng đã hướng dẫn các bạn sử dụng Orange PI Zero như Google Assistant trong bài viết này https://orangepi.vn/bien-orange-pi-zero-thanh-google-assistant.html. Tuy nhiên chưa tạo thành file ảnh img sẵn như bên Kênh Táy máy, nên ít người ủng hộ. Có lẽ việc tạo file ảnh sẵn sẽ được nhiều người thích hơn vì đỡ phải làm gì 🙂 Orange PI Việt Nam sẽ rút kinh nghiệm

Ngoài ra, việc in vỏ 3D và hàn loa cũng khá phức tạp nên Orange Pi Việt Nam gợi ý bạn 1 combo sản phẩm Orange PI Zero, Bo mở rộng Ext, vỏ đen cho ext và 1 bộ loa siêu rẻ LF-809 hoặc LF-807 là được (ảnh minh họa). Link sản phẩm này đều có trên shopee

Theo cập nhật mới nhất, từ ngày 1/1/2021 trang snowboy tạo hotword đã đóng lại và theo như hướng dẫn thì bạn sẽ không tạo ra được hotword riêng của mình nữa. Do đó mình xin hướng dẫn các bạn tạo hotword ngay trên máy tính cá nhân một cách dễ dàng.

Đầu tiên các bạn cần máy PC đang chạy tốt, chạy Win cũng được, Linux thì quá hay. Nhưng vì WIN phổ thông hơn nên mình sẽ hướng dẫn các bạn cài trên Win. Để cài trên Win hay Linux, các bạn cần cài bản Ubuntu 16.04 (chính xác là bản 16.04 vì mình có thử qua các bản 18.04 hoặc 20.04 đều không được)

Trước tiên, hãy mở PowerShell trên Windows, bấm Start, tìm PowerShell, bấm chuột phải và chọn Run as administrator
Tiếp sau đó gõ câu lệnh này

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux 

câu lệnh này là để cho phép cài Linux subsystem, bấm Y khi được hỏi và Enter.
Quay về ổ C, tải bản Ubuntu 16.04 về bằng câu lệnh

Invoke-WebRequest -Uri https://wsldownload.azureedge.net/Ubuntu_1604.2019.523.0_x64.appx -OutFile Ubuntu.appx -UseBasicParsing

Sau khi tải xong, trên ổ C sẽ có 1 file tên là Ubuntu_1604.2019.523.0_x64.appx, ok hãy gõ lệnh

Add-AppxPackage .\Ubuntu_1604.2019.523.0_x64.appx

Như vậy là việc cài đã xong xuôi.

Quay về Windows, bấm Start và chọn bản Linux vừa cài, sẽ mất 1 thời gian cho hệ thống chạy, sau đó chọn username, password là bạn đã có 1 bản Ubuntu 16.04 chạy ngay trên nền Windows.

Phần tiếp theo là cài các phần mềm cần thiết

sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install python-pyaudio python3-pyaudio sox
sudo apt-get install virtualenv

Tiếp đến là clone thư mục này về

git clone https://github.com/seasalt-ai/snowboy
cd snowboy

Sau đó là chạy môi trường ảo python

virtualenv -p python2 venv/snowboy
source venv/snowboy/bin/activate
cd examples/Python

cài các thư viện cần thiết qua pip

pip install pyaudio
pip install numpy scipy pandas sympy nose

nếu pip yêu cầu nâng cấp, hãy nâng cấp như yêu cầu qua lệnh pip install –upgrade pip. Tạm thời WSL dùng đến đây.

Giờ là lúc cần ghi âm và tạo hotword, như hướng dẫn, bạn cần một môi trường yên tĩnh, sử dụng đúng combo Orange Pi Zero và Ext đó, sau khi SSH vào như hướng dẫn, chạy các lệnh sau để ghi âm

rec -r 16000 -c 1 -b 16 -e signed-integer -t wav record1.wav
rec -r 16000 -c 1 -b 16 -e signed-integer -t wav record2.wav
rec -r 16000 -c 1 -b 16 -e signed-integer -t wav record3.wav

Mỗi 1 lệnh chạy xong sẽ ghi âm 1 lần hotword của bạn, bấm Cltr+C để thoát khi ghi xong. Sau đó bạn copy 3 file wav đó về máy tính của bạn qua lệnh scp

scp [email protected]:/root/record*.wav C:\

Kiểm tra xem 3 files wav trên đã có trên ổ C chưa. Quay trở lại Linux trên Windows (WSL). Copy các file wave vào thư mục cần tạo hotword. Ổ C:\ của bạn trên WSL được mặc định sẽ là /mnt/c

cp /mnt/c/record*.wav ~/snowboy/examples/Python

Khi đó trên thư mục (venv) ~/snowboy/examples/Python sẽ có 3 file wave kia.

Chạy nốt câu lệnh này sẽ tạo ra file hotwork.pmdl của bạn

python generate_pmdl.py -r1=record1.wav -r2=record2.wav -r3=record3.wav -lang=en -n=hotword.pmdl

Sau khi có được file hotword.pmdl của bạn, copy nó vào Pi đã cài như hướng dẫn của Kênh táy máy. Chúc các bạn thành công.

Video minh họa

2 thoughts on “Train hotword cho Loa thông minh Google Assistant tiếng Việt bằng PC”

  1. (cho mình hỏi đây là lỗi gì ạ . mình làm đến đoạn ghi âm thi không được ?

    snowboy) [email protected]:~$ rec -r 16000 -c 1 -b 16 -e signed-integer -t wav record1.wav
    ALSA lib confmisc.c:768:(parse_card) cannot find card ‘0’
    ALSA lib conf.c:4292:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
    ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
    ALSA lib conf.c:4292:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
    ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name
    ALSA lib conf.c:4292:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
    ALSA lib conf.c:4771:(snd_config_expand) Evaluate error: No such file or directory
    ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM default
    rec FAIL formats: can’t open input `default’: snd_pcm_open error: No such file or directory

    1. Lệnh rec này bạn phải chạy trên Orange PI Zero và ext bạn nhé, ko phải chạy trên PC

Leave a Reply

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.