文档章节

语音识别机器人毕业设计第四天

张飞online
 张飞online
发布于 2017/05/27 22:33
字数 1221
阅读 71
收藏 0

今天我们要调试python

1:首先我们还是要导入一些包:

sudo apt-get install swig3.0 python-pyaudio python3-pyaudio sox

sudo apt-get install libatlas-base-dev

2:还有个特别重要的事情没有做,那就是我们没有修改声卡:我们多一天用arecord录音用插件方式指定了录音声卡是1:0,现在我们用pyaudio来录音就没那么容易指定了,需要我们修改默认的声卡: 这里我们简单的介绍下 linux ALSA下的声卡 的相关的情况:

ALSA的配置文件对于ALSA非常重要。常见的有三个:alsa.conf, asoundrc, asound.conf。

  1. 核心配置文件 ALSA核心配置文件位于/usr/share/alsa/目录下,主要配置文件为/usr/share/alsa/alsa.conf 。其它文件是否需要,位置在哪,都是由alsa.conf来决定的。通常会有/usr/share/alsa/card 和/usr/share/alsa/pcm两个子目录,用于设置Card相关的参数,别名以及一些PCM默认设置。 此外,在alsa.conf中,通常还会引用 /etc/asound.conf 和 ~/.asoundrc这两个配置文件,这两个文件通常是放置个人需要特殊设置的相关参数。按照Alsa官方文档的说法,1.0.9版本以后,这两个文件就不再是必要的,甚至是不应该需要的。至少是不推荐使用。不过,在嵌入式系统中使用,为了简单和方便测试,恰恰是需要修改这两个文件。
  1. alsa.conf alsa.conf中主要的一些内容包括:
  1. 用hook读取了/etc/asound.conf 和 ~/.asoundrc这两个配置文件:

@hooks [                                          
        {                                               
                func load                           
                files [                                        
                        "/etc/asound.conf"    
                        "~/.asoundrc"       
                ]                       
                errors false                      
        }                                            
]

  1. 设置了default pcm的一些默认参数,如,默认使用Card 0 ,Device 0作为音频设备等等
defaults.ctl.card 0     
defaults.pcm.card 0     
defaults.pcm.device 0 
defaults.pcm.subdevice -1                
defaults.pcm.nonblock 1               
defaults.pcm.ipc_key 5678293
。。。
  1. 设置了Alsa 内置的一些plugin的接口参数,例如file:
pcm.file {
        @args [ FILE FORMAT ]
        @args.FILE {
                type string
        }
        @args.FORMAT {
                type string
                default raw
        }
        type file
        slave.pcm null
        file $FILE
        format $FORMAT
}
 

File plugin的作用是将PCM数据流存储到文件中。

3.asoundrc和asound.conf 按照ALSA官方说法,asoundrc是针对个人用户的配置文件,asound.conf是全局的配置文件。其中,asoundrc位于主目录下,是个隐藏文件:“.asoundrc”。asound.conf位于/etc目录下。对于最新版本的ALSA库来说,这两个文件已不再需要。但是对于一些特定应用来说,他们的使用恰到好处。典型的asoundrc文件如下:

Y(^_^)Y 举双手胜利 

4.ALSA配置状态保存,恢复和自动加载 实际使用过程中,常常需要动态修改声卡的配置信息,如更新asoundrc中的Mixer信息。如果不对当前声卡的配置状态进行保存,下次启动系统时,将还原到原始状态。为此,我们有必要对声卡的配置状态进行保存。声卡配置状态保存工具为:alsactl,具体保存命令为: alsactl store -f /var/lib/alsa/asound.state 这样就在/var/lib/alsa/目录下生成了asound.state文件,该文件保存了声卡的状态配置信息,包括常用的mixer配置信息。相应的声卡状态恢复命令为: alsactl restore -f /var/lib/alsa/asound.state 注:在每次修改完声卡配置文件之后,必须要保证配置文件被系统加载,否则在保存声卡配置状态信息时,alsactl读取的是上次声卡的状态。常用的加载配置文件的方法是播放一个音频文件,例如: speaker-test -twav 这样就可以将刚刚修改的配置文件加载到系统中,然后执行相应的保存命令,即可将相应的声卡状态信息保存到文件中。得到了声卡的配置状态信息仍不能保证系统启动时自动加载并应用状态信息。需要修改启动配置文件,加入ALSA Daemon。启动配置文件为:/etc/rc.conf,在包含DAEMONS的一行内加入alsa项目。这样,系统启动时会自动执行/etc/rc.d/alsa脚本,该脚本会自动执行前面所说的声卡状态恢复命令,恢复Mixer配置信息。

 当然看了上面的资料我们就要配置我们自己的声卡了,首先来说:我们需要清楚我们自己有那些声卡:

aplay -l

上面列出的是播放设备 card 0、 device 0 或hw:0,0 (hw:0,1是 HDMI 音频输出)。

  • 下面我们列出我们的录音设备︰
arecord -l

在这里录制设备处于卡 1,设备 0 或hw1:0.

  • 然后我们修改我们的配置文件~/.asoundrc文件︰
pcm.!default {
  type asym
   playback.pcm {
     type plug
     slave.pcm "hw:0,0"
   }
   capture.pcm {
     type plug
     slave.pcm "hw:1,0"
   }
}
  • 然后运行rec就可以默认设备录音:
rec 1.wav

我们的核心代码来了:

待更新

© 著作权归作者所有

共有 人打赏支持
张飞online
粉丝 0
博文 5
码字总数 4965
作品 0
海淀
私信 提问
韩国首尔举办了“外商投资周2017”(Invest Korea Week)活动

韩国首尔举办了“外商投资周2017”(Invest Korea Week)活动 2017年11月13日 智元 AI产业   “Invest Korea Week 2017”外商投资周今年迎来第13届,主题是“助力第四次工业革命和创造工作岗...

智元
2017/11/13
0
0
史上最全华人AI大牛流动图谱:谷歌、微软与百度是人才中转站

     来源:知链数据   【新智元导读】自从阿尔法狗事件之后,人工智能领域在深度学习带领下迎来了又一个高峰,随之而来的是资本与人才的流动,我们总结公开信息提到的华人AI大牛与大佬...

深度学习
2018/05/05
0
0
2017年人工智能应用 :机器人烹饪亮眼

  2017年即将过去,回顾这一年,无疑人工智能成为了今年的“网红词”,上到高层下到普罗大众都在紧密地关注着人工智能应用的进展。为此,我国颁布了首部关于《新一代人工智能发展规划》,而...

中国机器人
2017/12/28
0
0
(推荐)叮当——中文语音对话机器人

叮当是一款可以工作在 Raspberry Pi 上的开源中文语音对话机器人/智能音箱项目,目的是让中国的Hacker们也能快速打造个性化的智能音箱。 github地址:https://github.com/wzpan/dingdang-rob...

禾路
2017/08/30
0
0
区块链毕设资料【2019-1】

区块链作为一种崭新的、颠覆性的技术,是国内外活跃的研究领域和毕业设计选题方向。本文列出最新的一组区块链方面的论文,希望可以对选择区块链毕业设计的同学们有所帮助,这是汇智网编辑整理...

汇智网教程
01/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CSS 选择器参考手册

CSS 选择器参考手册 选择器 描述 [attribute] 用于选取带有指定属性的元素。 [attribute=value] 用于选取带有指定属性和值的元素。 [attribute~=value] 用于选取属性值中包含指定词汇的元素。...

Jack088
今天
1
0
数据库篇一

数据库篇 第1章 数据库介绍 1.1 数据库概述  什么是数据库(DB:DataBase) 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据...

stars永恒
今天
2
0
Intellij IDEA中设置了jsp页面,但是在访问页面时却提示404

在Intellij IDEA中设置了spring boot的jsp页面,但是在访问时,却出现404,Not Found,经过查找资料后解决,步骤如下: 在Run/Debug Configurations面板中设置该程序的Working Directory选项...

uknow8692
昨天
3
0
day24:文档第五行增内容|每月1号压缩/etc/目录|过滤文本重复次数多的10个单词|人员分组|

1、在文本文档1.txt里第五行下面增加如下内容;两个方法; # This is a test file.# Test insert line into this file. 分析:给文档后增加内容,可以用sed 来搞定;也可以用while do done...

芬野de博客
昨天
3
0
深入理解JVM—JVM内存模型

深入理解JVM—JVM内存模型 我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存...

onedotdot
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部