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

2023-11-01 13:48

本文主要是介绍基于树莓派使用DuerOS的笔记,待续,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

我使用的摄像头是罗技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/cards0 [ALSA           ]: bcm2835 - bcm2835 ALSAbcm2835 ALSA1 [U0x46d0x825    ]: USB-Audio - USB Device 0x46d:0x825USB 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/1Subdevice #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 updatesudo apt-get install python-dateutilsudo apt-get install gir1.2-gstreamer-1.0sudo apt-get install python-pyaudiosudo apt-get install libatlas-base-devsudo apt-get install python-dev     sudo pip install tornadosudo 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

这篇关于基于树莓派使用DuerOS的笔记,待续的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/323415

相关文章

Java中的getBytes()方法使用详解

《Java中的getBytes()方法使用详解》:本文主要介绍Java中getBytes()方法使用的相关资料,getBytes()方法有多个重载形式,可以根据需要指定字符集来进行转换,文中通过代... 目录前言一、常见重载形式二、示例代码三、getBytes(Charset charset)和getByt

Java使用Stream流的Lambda语法进行List转Map的操作方式

《Java使用Stream流的Lambda语法进行List转Map的操作方式》:本文主要介绍Java使用Stream流的Lambda语法进行List转Map的操作方式,具有很好的参考价值,希望对大... 目录背景Stream流的Lambda语法应用实例1、定义要操作的UserDto2、ListChina编程转成M

Spring框架中@Lazy延迟加载原理和使用详解

《Spring框架中@Lazy延迟加载原理和使用详解》:本文主要介绍Spring框架中@Lazy延迟加载原理和使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、@Lazy延迟加载原理1.延迟加载原理1.1 @Lazy三种配置方法1.2 @Component

使用easy connect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题

《使用easyconnect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题》:本文主要介绍使用easyconnect之后,maven无法... 目录使用easGWowCy connect之后,maven无法使用,原来需要配置-DJava.net.pr

使用Java编写一个字符脱敏工具类

《使用Java编写一个字符脱敏工具类》这篇文章主要为大家详细介绍了如何使用Java编写一个字符脱敏工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、字符脱敏工具类2、测试工具类3、测试结果1、字符脱敏工具类import lombok.extern.slf4j.Slf4j

pandas DataFrame keys的使用小结

《pandasDataFramekeys的使用小结》pandas.DataFrame.keys()方法返回DataFrame的列名,类似于字典的键,本文主要介绍了pandasDataFrameke... 目录Pandas2.2 DataFrameIndexing, iterationpandas.DataF

使用Python和PaddleOCR实现图文识别的代码和步骤

《使用Python和PaddleOCR实现图文识别的代码和步骤》在当今数字化时代,图文识别技术的应用越来越广泛,如文档数字化、信息提取等,PaddleOCR是百度开源的一款强大的OCR工具包,它集成了... 目录一、引言二、环境准备2.1 安装 python2.2 安装 PaddlePaddle2.3 安装

嵌入式Linux之使用设备树驱动GPIO的实现方式

《嵌入式Linux之使用设备树驱动GPIO的实现方式》:本文主要介绍嵌入式Linux之使用设备树驱动GPIO的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、设备树配置1.1 添加 pinctrl 节点1.2 添加 LED 设备节点二、编写驱动程序2.1

使用Python开发Markdown兼容公式格式转换工具

《使用Python开发Markdown兼容公式格式转换工具》在技术写作中我们经常遇到公式格式问题,例如MathML无法显示,LaTeX格式错乱等,所以本文我们将使用Python开发Markdown兼容... 目录一、工具背景二、环境配置(Windows 10/11)1. 创建conda环境2. 获取XSLT

Python中Flask模板的使用与高级技巧详解

《Python中Flask模板的使用与高级技巧详解》在Web开发中,直接将HTML代码写在Python文件中会导致诸多问题,Flask内置了Jinja2模板引擎,完美解决了这些问题,下面我们就来看看F... 目录一、模板渲染基础1.1 为什么需要模板引擎1.2 第一个模板渲染示例1.3 模板渲染原理二、模板