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 http://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
- Bo mở rộng: https://shopee.vn/product/37995875/1471377902/
- Vỏ đen lắp ext: https://shopee.vn/product/37995875/1471377918/
- Loa LF-807: https://shopee.vn/product/37995875/3273618123/
- Loa LF-890F: https://shopee.vn/product/37995875/2118632745/
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
(cho mình hỏi đây là lỗi gì ạ . mình làm đến đoạn ghi âm thi không được ?
snowboy) fuli@DESKTOP-TCTTFEA:~$ 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
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