今天我们要调试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。
- 核心配置文件
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版本以后,这两个文件就不再是必要的,甚至是不应该需要的。至少是不推荐使用。不过,在嵌入式系统中使用,为了简单和方便测试,恰恰是需要修改这两个文件。
- alsa.conf
alsa.conf中主要的一些内容包括:
- 用hook读取了/etc/asound.conf 和 ~/.asoundrc这两个配置文件:
@hooks [
{
func load
files [
"/etc/asound.conf"
"~/.asoundrc"
]
errors false
}
]
- 设置了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
。。。
- 设置了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 1.wav
我们的核心代码来了:
待更新
转载于:https://my.oschina.net/u/3506656/blog/910727
分享到:
相关推荐
4. **基于单片机的语音识别机器人的设计.pdf**:此文档可能讲解了如何利用单片机设计一个能够理解和执行语音命令的机器人,涵盖了硬件选择、软件开发和实时处理等方面。 5. **听觉特性与鲁棒语音识别算法研究.kdh**...
这可能涉及文本处理、图像识别、语音识别等技术。 3. **交互逻辑**:定义机器人如何回应用户,例如设置关键词匹配机制,当用户发送特定关键词时,机器人给出相应的回复。 4. **持久化存储**:为保存用户信息和聊天...
【标题】中的“毕设&课设&项目&实训-基于AI、区块链加密技术,去中文化的私有聊天机器人”揭示了这是一个针对学生设计的项目,涵盖了毕业设计、课程设计、实践项目和训练任务,目的是开发一个具备AI智能和区块链加密...
- **语音识别电路**:实现语音播报功能。 - **无线收发模块**:实现数据的无线传输。 - **软件设计**: - **主程序流程**:定义主程序的执行逻辑。 - **灭火子程序**:编写灭火操作的具体步骤。 - **传感器...
- **人工智能模块**:可能采用机器学习算法(如决策树、神经网络)预测等待时间,或者通过自然语言处理技术(如NLP库如NLTK或Spacy)进行语音识别或聊天机器人交互。 - **消息队列**:如RabbitMQ或Kafka,用于处理...
第四阶段是第二发展期,已有人工智能研究成果逐步应用于各个领域,人工智能技术在商业领域取得了巨大的成果。第五阶段是平稳发展阶段,上世纪90年代以来,随着互联网技术的逐渐普及,人工智能已经逐步发展成为分布式...
第二部分的论文题目继续拓展了MATLAB的应用范围,包括建筑沉降监测、轴承动态特性、虚拟控制系统设计、钢桁梁施工控制、永磁同步电机控制、色域平台开发、语音信号去噪、二极管双T电桥仿真、推土机动力系统匹配、二...
- **模式识别**:如图像识别、语音识别。 - **预测分析**:金融市场的趋势预测。 - **智能控制**:机器人控制、自动驾驶汽车。 - **组合优化**:物流路径规划、任务调度。 - **图像处理**:图像分类、目标检测。 - *...
例如,容易实现协议的设计。 Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在...