文档章节

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

张飞online
 张飞online
发布于 2017/05/27 22:33
字数 1221
阅读 59
收藏 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
(推荐)叮当——中文语音对话机器人

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

禾路
2017/08/30
0
0
中文语音对话机器人项目--dingdang-robot

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

匿名
01/01
2K
8

没有更多内容

加载失败,请刷新页面

加载更多

python中cv2模块imread函数

导入 >> import cv2>> import numpy as np 读图片 >> image_arr = cv2.imread('file_path') 灰度图扩展成彩色图 可以通过图片的channel判断是否是灰度图。如果需要可以将灰度图扩展到RGB......

温子寒
25分钟前
1
0
利用剪切板JS API优化输入框的粘贴体验

直接复制记录下 /**@description 表单输入框粘贴体验优化,出处https://www.zhangxinxu.com/wordpress/?p=8003@author zhangxinxu*/// 遍历所有的输入框[].slice.call(document.qu...

红羊在厦门
32分钟前
2
0
2018CTF大赛学习

1.C伪随机数,可预测,可用来做加密解密,如 int main() { // This program will create same sequence of // random numbers on every program run for(int i = 0; ......

simpower
46分钟前
1
0
XamarinEssentials教程移除键值首选项的键值

XamarinEssentials教程移除键值首选项的键值 如果开发者不再使用首选项中的某一项时,可以将该项移除掉。此时可以使用Preferences类的Remove()方法,该方法可以将存在于首选项中的指定键以及...

大学霸
54分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部