文档章节

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

张飞online
 张飞online
发布于 2017/05/27 22:33
字数 1221
阅读 58
收藏 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大牛与大佬...

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

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

中国机器人
2017/12/28
0
0
中文语音对话机器人项目--dingdang-robot

叮当是一款可以工作在 Raspberry Pi 上的中文语音对话机器人/智能音箱项目。 叮当包括以下诸多特性: 模块化。功能插件、语音识别、语音合成、对话机器人都做到了高度模块化,第三方插件单独...

匿名
01/01
2K
8
50多家企业报名【2017AI 最佳雇主】评选,我们期待更多企业加入

4 月中旬,雷锋网联合旗下人工智能频道 AI 科技评论、环球科学 和 BOSS 直聘,共同重磅推出 AI 领域第一份雇主评选榜:【2017 AI 最佳雇主】榜单。 榜单一经推出,就受到人工智能业界极大关注...

亚萌
2017/05/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

php 使用redis锁限制并发访问类

1.并发访问限制问题 对于一些需要限制同一个用户并发访问的场景,如果用户并发请求多次,而服务器处理没有加锁限制,用户则可以多次请求成功。 例如换领优惠券,如果用户同一时间并发提交换领...

豆花饭烧土豆
7分钟前
0
0
Linux环境搭建 | 手把手教你配置Linux虚拟机

在上一节 「手把你教你安装Linux虚拟机」 里,我们已经安装好了Linux虚拟机,在这一节里,我们将配置安装好的Linux虚拟机,使其达到可以开发的程度。 Ubuntu刚安装完毕之后,还无法进行开发,...

良许Linux
9分钟前
0
0
Nginix开启SSL支持HTTPS访问(自签名方法)

Nginix开启SSL支持HTTPS访问(自签名方法) 超文本传输安全协议(缩写:HTTPS,英语:Hypertext Transfer Protocol Secure)是超文本传输协议和SSL/TLS的组合,用以提供加密通讯及对网络服务器...

openthings
25分钟前
0
0
(三)Nginx配置·续

概述 前文写了关于Nginx环境配置,但是还没有完,接下来将会继续讲三个相关的配置 主要是以下三个 1.Nginx访问日志 2.Nginx日志切割 3.静态文件不记录日志和过期时间 Nginx访问日志 1.先看看...

杉下
今天
1
0
jquery创建类似于java的map

var map = {}; // Map map = new HashMap(); map[key] = value; // map.put(key, value); var value = map[key]; // Object value = map.get(key); var has = key in map; // boolean has = ......

SuperDabai
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部