基于树莓派使用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

相关文章

Linux中的计划任务(crontab)使用方式

《Linux中的计划任务(crontab)使用方式》:本文主要介绍Linux中的计划任务(crontab)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言1、linux的起源与发展2、什么是计划任务(crontab)二、crontab基础1、cro

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java

C++变换迭代器使用方法小结

《C++变换迭代器使用方法小结》本文主要介绍了C++变换迭代器使用方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、源码2、代码解析代码解析:transform_iterator1. transform_iterat

C++中std::distance使用方法示例

《C++中std::distance使用方法示例》std::distance是C++标准库中的一个函数,用于计算两个迭代器之间的距离,本文主要介绍了C++中std::distance使用方法示例,具... 目录语法使用方式解释示例输出:其他说明:总结std::distance&n编程bsp;是 C++ 标准

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当