基于树莓派使用DuerOS的笔记,待续

本文介绍了在树莓派上配置基础环境,包括检查USB和声卡设备,以及如何使用Snowboy创建语音唤醒词。接着,详细阐述了安装DuerOS的准备工作,如下载和安装openssl及Python,解决pip依赖问题,为实现DuerOS的语音交互功能奠定基础。
摘要由CSDN通过智能技术生成

前言

我使用的摄像头是罗技C270,自带麦克风。snowboy官方推荐的是 PlayStation 3 Eye webcam

基础环境

查看系统USB设备

root@raspberrypi:~/#lsusb  #查看系统USB设备
Bus 001 Device 010: ID 046d:0825 Logitech, Inc. Webcam C270
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

查看声卡设备

root@raspberrypi:~/# cat /proc/asound/cards
 0 [ALSA           ]: bcm2835 - bcm2835 ALSA
                      bcm2835 ALSA
 1 [U0x46d0x825    ]: USB-Audio - USB Device 0x46d:0x825
                      USB Device 0x46d:0x825 at usb-3f980000.usb-1.4, high speed
root@raspberrypi:~/# arecord -l
**** List of CAPTURE Hardware Devices ****
card 1: U0x46d0x825 [USB Device 0x46d:0x825], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

可以使用arecord -D "plughw:1,0" temp.wav来录制一段音频试试,结束请Ctrl+C,或者使用-d 60来记录一段60秒的录音
plughw后面的1表示上面的声音输入编号
更多细节请查看官方文档

snoyboy

在shell执行下面语句准备安装工作

apt-get -y install alsa-utils alsa-tools alsa-tools-gui
apt-get install python-pyaudio python3-pyaudio sox
pip install pyaudio

首先去Snowboy上注册自己的语音库并下载,然后再下载官方的Demo
解压后执行:

python demo.py snow.pmdl

snow.pmdl就是你从snowboy上下载的语音库了。
然后会跳出来一堆英文,直到你看到提示

Listening... Press Ctrl+C to exit

OK,你可以对着mic说出你的hotwords了

INFO:snowboy:Keyword 1 detected at time: 2017-10-31 00:45:43
INFO:snowboy:Keyword 1 detected at time: 2017-10-31 00:46:02
INFO:snowboy:Keyword 1 detected at time: 2017-10-31 00:46:36
INFO:snowboy:Keyword 1 detected at time: 2017-10-31 00:47:12

测试了几次识别率都挺高的
这有一份官方给出的简易demo,可以在此基础上进行开发

import snowboydecoder
def detected_callback():
    print "hotword detected"
detector = snowboydecoder.HotwordDetector("snow.pmdl", sensitivity=0.5, audio_gain=1)
detector.start(detected_callback)

使用DuerOS的准备工作

 sudo apt-get update
 sudo apt-get install python-dateutil
 sudo apt-get install gir1.2-gstreamer-1.0
 sudo apt-get install python-pyaudio
 sudo apt-get install libatlas-base-dev
 sudo apt-get install python-dev     
 sudo pip install tornado
 sudo pip install hyper

下载编译好的openssl和Python安装包,并进行安装, 需要更新openssl才能支持python sdk的使用

从如下地址下载openssl安装包 (链接: https://pan.baidu.com/s/1skAP6WH 密码: wknz)
从如下地址下载python2.7.14安装包 (链接: https://pan.baidu.com/s/1o8MHkzK 密码: ngx4)


sudo tar -zxvf openssl1.1.tar.gz -C /usr
sudo tar -zxvf python2.7.14.tar.gz -C /usr/local/
sudo rm -rf /usr/bin/python
sudo ln -s /usr/local/python2.7.14/bin/python /usr/bin/python

更新了之后pip就不能用了,总是提示缺少文件,去官网下载源码包,把里面文件都复制到/usr/lib/python2.7/dist-packages/pip/,搞定,pip可以正常使用了。

pip install hyper

1. 功能概述 利用普通的USB摄像头获取动态图像实时的检测出图像中的人脸并用红框框出。 2. 程序清单 1)CameraDS.cpp bool CCameraDS::OpenCamera(int nCamID, bool bDisplayProperties=true, int nWidth=320, int nHeight=240); 打开摄像头,nCamID指定打开哪个摄像头,取值可以为0,1,2,... bDisplayProperties指示是否自动弹出摄像头属性页 nWidth和nHeight设置的摄像头的宽和高,如果摄像头不支持所设定的宽度和高度,则返回false void CloseCamera(); 关闭摄像头,析构函数会自动调用这个函数 static int CameraCount(); 返回摄像头的数目 可以不用创建CCameraDS实例,采用int c=CCameraDS::CameraCount();得到结果。 static int CCameraDS::CameraName(int nCamID, char* sName, int nBufferSize); 根据摄像头的编号返回摄像头的名字 nCamID: 摄像头编号 sName: 用于存放摄像头名字的数组 nBufferSize: sName的大小 可以不用创建CCameraDS实例,采用CCameraDS::CameraName();得到结果。 int GetWidth(); 返回图像宽度 int GetHeight(); 返回图像高度 IplImage * QueryFrame(); 抓取一帧,返回的IplImage不可手动释放! 返回图像数据的为RGB模式的Top-down(第一个字节为左上角像素),即IplImage::origin=0(IPL_ORIGIN_TL) 2)haarcascade.cpp CvHaarClassifierCascade* load_object_detector( const char* cascade_path ); 用于从文件中装载训练好的利用哈尔特征的级联分类器(网上下的) cascade_path:文件路径
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值