树莓派智能语音助手之ASR – SpeechRecognition+PocketSphinx

news2024/11/23 15:36:22

想要让树莓派成为智能语音助手,除了会“说”,也要会“听”。接下来,就要让它实现ASR(语音识别)功能了。

本来想用sherpa-onnx来实现离线语音识别的,可惜,我的树莓派系统太老了,折腾了半天发现很多东西不兼容,于是只能放弃了这个方案。最后选择了SpeechRecognition+PocketSphinx来实现。

1安装SpeechRecognition

pip install SpeechRecognition

安装成功后在终端输入:

python

>>import speech_recognition as sr

>>sr.__version__

回车后显示了版本号则表示安装成功。

2 安装PocketSphinx

recognize_sphinx()语音识别器可以脱机工作,但是必须安装pocketsphinx库.

pip install pocketsphinx

3 下载中文模型

pocketsphinx需要安装中文语言、声学模型。

下载地址:

https://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/Mandarin/

把cmusphinx-zh-cn-5.2.tar.gz下载解压后,要将文件夹更名为zh-CN,里面的zh_cn.cd_cont_5000文件夹重命名为acoustic-model;zh_cn.lm.bin命名为language-model.lm.bin;zh_cn.dic要改为pronounciation-dictionary.dict(注意,dic改成了dict)。完成这些改名后,把这个文件夹移动到python目录下的\site-packages/speech_recognition/pocketsphinx-data/。

mv zh-CN /usr/local/lib/python3.9/site-packages/speech_recognition/pocketsphinx-data/

4 功能测试

touch asr.py

sudo nano asr.py

创建一个asr的py文件,内容如下:

import speech_recognition as sr

def asr(rate=16000):
   r = sr.Recognizer()

   with sr.Microphone(sample_rate=rate) as source:
      print("说些什么…… ")
      audio = r.listen(source)

   try:
     c=r.recognize_sphinx(audio, language='zh-CN')
    #c=r.recognize_sphinx(audio, language='en-US')
     print("识别结果: " + c)
   except sr.UnknownValueError:
      print("无法识别音频")
   except sr.RequestError as e:
      print("Sphinx error; {0}".format(e))

asr()

注意,如果要让录音定时,audio=的代码就要改成:

audio=r.record(source,duration=5)  #设置5秒录音

存档后,执行python3 asr.py,结果如下:

我说的是“今天是个好天气”,识别的结果变成了“好贴心”……

最后,谈谈实测的感受。中文识别率好像不是特别高,而且识别的时间也有点长(也可能是我的系统太老了),先凑合用吧……

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2039508.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mybatis常见面试问题

0.原生JDBC样例: public class MainClass { public static void main(String[] args) { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { // 加载数据库驱动 Class.forName("com.mysql.cj.jdbc.Driver"); // 建立连接 String url = &q…

视觉SLAM ch3补充——在Linux中配置VScode以及CMakeLists如何添加Eigen库

ch3中的所有代码,除了在kdevelop中运行,还可以在VScode中运行。下面将简要演示配置过程,代码不再做解答,详细内容在下面的文章中。(这一节中的pangolin由于安装过程中会出现很多问题,且后续内容用不到该平台…

重磅官宣!追光少年【彭禹锦】荣担任中国美育促进网amp;IPA美育中国行代言人

在美育事业蓬勃发展的今天,一位年仅15岁的少年以其非凡的艺术才华和积极向上的精神风貌,成为了万众瞩目的焦点。中国美育促进网与IPA美育中国行正式宣布,才华横溢、正能量满满的追光少年彭禹锦受邀担任“中国美育促进网&IPA美育中国行”代…

c++中__int128的使用

需要10^30才可以存&#xff0c;我们可以用__int128来算 #include<bits/stdc.h>using namespace std;bool is_sqr(__int128 x) {__int128 l -1, r 1e16;while (r - l > 1) {__int128 m (l r) / 2;__int128 m2 m * m;if (m2 < x) {l m;} else {r m;}}if (l *…

【机器学习】RNN循环神经网络的基本概念、工作原理(含python代码)和应用领域

引言 递归神经网络&#xff08;RNN&#xff09;是一类用于处理序列数据的神经网络。它们在处理如时间序列数据、语音、文本和其他序列格式数据时特别有用 文章目录 引言一、RNN的基本概念1.1 RNN的定义组成1.1.1 单个神经元1.1.2 网络结构 1.2 RNN的工作原理及代码示例1.2.1 循…

8月7日-8日学习

首先是昨天看到的gemma 2 中训练2B模型用了知识蒸馏&#xff0c;找了一下技术报告 结果先找到了一代的半天没有看到知识蒸馏的部分 然后在二代里面找到了 只有很小的一部分 就是用小模型学习大模型的概率预测分布 然后这里的话又找到了华为发布的小模型论文 Rethinking Optim…

Centos7安装Redis(采用docker安装方式)

文章目录 1 拉取Redis镜像2 上传并修改配置文件3 启动Docker容器4 查看Docker是否正常启动 linux系统安装redis可以自己上传程序&#xff0c;手动启动&#xff0c;也可以用docker以容器形式启动。 redis建议可采用docker安装&#xff0c;如果是例如mysql这种追求稳定的关系型数…

mmdeployv0.6 mmdetectionv2.4、mmcv-full1.6安装及环境搭建

一、安装条件 Step 1.创建conda虚拟环境并激活 conda create -n mmdeploy python3.8 -y #创建环境 conda activate mmdeploy #激活环境Step 2.安装 PyTorch #如果网不好&#xff0c;可以这样安装 pip3 install torch1.8.1cu111 torchvision0.9.1cu111 -…

基于python的百度迁徙迁入、迁出数据分析(十)

副标题&#xff1a;从百度迁徙数据看——迁徙数据特征分析 书接上文&#xff0c;我们先回顾一下我们统计的时间口径&#xff1a;2024年2月1日——2024年8月1日&#xff0c;这里包含了春运、清明、五一、端午、四个中大型国定假日&#xff0c;我们详细分析一下在当下的统计周期…

GOIP语音网关对接VOS3000技巧 落地于呼叫配置

GOIP语音网关对接VOS3000技巧 落地和呼叫以鼎信GOIP网关为例 首先登录vos端&#xff0c;添加落地网关和账户 账户添加&#xff1a; 账户管理&#xff0c;先添加账户然后应用&#xff0c;在过滤看看是否添加成功 给账户添加一个费率 双击费率数量添加费率的地区前缀&#xff0…

关于宠物浮毛对身体是否有害?宠物空气净化器选对告别浮毛困扰

说到宠物掉毛&#xff0c;大家是不是都会心里咯噔一下&#xff0c;担心这会不会对身体有啥不好&#xff1f;这确实是很多养宠人&#xff0c;还有那些正打算养宠的朋友心里的一块大石头。而且啊&#xff0c;这浮毛问题还常常成了家庭纷争的源头&#xff0c;特别是那些怀孕了的、…

【约数之和】

题目 TLE代码 #include<bits/stdc.h> using namespace std; typedef long long LL; #define x first #define y secondconst int N 5e710; const int MOD 9901; LL a, b; unordered_map<int, int> cnt; LL res 1; LL fast(int base, int expo) {LL result 1;…

TreeSet的排序方式

一.TreeSet的特点&#xff1a; 二.TreeSet对象排序练习题&#xff1a; 需求&#xff1a;利用TreeSet存储整数并进行排序 package com.itheima.a06mySet; ​ import java.util.TreeSet; ​ public class A05_TreeSetDemo1 {public static void main(String[] args) {//1.创建T…

链表算法题一

​ 旋转链表 旋转链表 首先考虑特殊情况 若给定链表为空表或者单个节点,则直接返回head,不需要旋转操作.题目给定条件范围: 0 < k < 2 ∗ 1 0 9 0 < k < 2 * 10^9 0<k<2∗109,但是受给定链表长度的限制,比如示例2中,k4与k1的效果等价. 那么可以得出kk%l…

QLabel设置图像的方法+绘制文本换行显示

1、QLabel设置图像有两种方法 (1) void setPicture(const QPicture &); (2) void setPixmap(const QPixmap &); QPicture和QPixmap都是继承于QPaintDevice&#xff0c;它们都可以通过加载图片的方式获取&#xff1a;bool load(QIODevice *dev, const char *format …

8.8网络编程

笔记 网络基础 一.网络通信的引入 IPC通信方式&#xff0c;只能完成同一台主机之间多个进程间的通信&#xff0c;在实现跨主机的多个进程间通信时&#xff0c;就显得力不从心了。所以我们引入了网络通信&#xff0c;基于套接字socket的通信方式&#xff0c;能够完成同一主机…

AI Agent工程师认证-学习笔记(2)——【多Agent】AgentScope

基础学习链接&#xff1a;【多Agent】AgentScope学习指南 速通攻略&#xff1a;零基础做个多智能体游戏 Agentscope入门文档&#xff1a;AgentScope 初探 应用开发进阶&#xff1a;AgentScope应用开发入门 AgentScope官方文档&#xff1a;AgentScope官方文档 AgentScope开…

Ghidra:开源软件逆向工程框架

Ghidra 是一个软件逆向工程 (SRE) 框架 Ghidra 是一种尖端的开源软件逆向工程 (SRE) 框架&#xff0c;是美国国家安全局 (NSA) 研究局的产品。 Ghidra 该框架具有高端软件分析工具&#xff0c;使用户能够分析跨各种平台&#xff08;包括 Windows、macOS 和 Linux&#xff09…

【区块链+金融服务】港融区域股权服务平台 | FISCO BCOS应用案例

中国证监会在 2020 年启动了区块链建设试点工作&#xff0c;提出建设基于区块链的场外市场登记系统和交易报告库&#xff0c;利 用区块链去中心化、不易篡改、安全稳定等技术特点&#xff0c;构建区域性股权市场数字化信任机制&#xff0c;为区域性股权市场 提供基础支撑设施。…

【网编】——UDP编程

宏观操作 服务器&#xff1a;socket创套接字—bind绑定连接—recvfrom接收数据/sendto发送数据 客户端&#xff1a;socket创套接字—sendto发送数/recvfrom接收数据—close关闭套接字 函数 recv ssize_t recvfrom ( int sockfd , void * buf , size_t len , int flags , str…