ALSA音频工具编译安装 ========================================================================1.官网http://www.alsa-project.org下载alsa-lib和alsa-utils我的版本:alsa-lib-1.0.27.2.tar.bz2 和alsa-utils-1.0.27.2.tar.bz22.创建/home/m/3rd/alsa目录,并在目录下创建install目录,接着把压缩包拷到alsa目录…
*************************************************************************************************************************** 作者:EasyWave 时间:2014.10.25 类别:Linux应用-ALSA音频架构ALSA-lib的移植于编译…
本文的部分内容参考来自DroidPhone的博客(http://blog.csdn.net/droidphone/article/details/6271122),关于ALSA写得很不错的文章,只是少了实例.本文就是结合实例来分析ALSA音频驱动. 开发环境:ubuntu10.04 目标板:linux-2.6.37 (通过命令uname -r 查看linux内核版信息) 编译器:arm-none-linux-gnueabi- (none 代表编译器的制作者,比如:fsl代表飞思卡尔,内核里面谈E…
本设计思路:先打开一个普通wav音频文件,从定义的文件头前面的44个字节中,取出文件头的定义消息,置于一个文件头的结构体中.然后打开alsa音频驱动,从文件头结构体取出采样精度,声道数,采样频率三个重要参数,利用alsa音频驱动的API设置好参数,最后打开wav文件,定位到数据区,把音频数据依次写到音频驱动中去,开始播放,当写入完成后,退出写入的循环. 注意:本设计需要alsa的libasound-dev的库,编译链接时需要连接 —lasound. #include#incl…
一.前序 这里了解一下各个参数的含义以及一些基本概念. 声音是连续模拟量,计算机将它离散化之后用数字表示,就有了以下几个名词术语. 样本长度(sample):样本是记录音频数据最基本的单位,计算机对每个通道采样量化时数字比特位数,常见的有8位和16位. 通道数(channel):该参数为1表示单声道,2则是立体声. 帧(frame):帧记录了一个声音单元,其长度为样本长度与通道数的乘积,一段音频数据就是由苦干帧组成的. 采样率(rate):每秒钟采样次数,该次数是针对帧而言,常用的采样率如8KH…
做linux音频编程对alsa应该不陌生. 但是对于刚接触这块技术的同学来说是一件困难的事情.原因在于:网上关于alsa的资料太少了,特别国内的资料更是大部分重复.对于初学者来说特别苦恼. 由于笔者经历过一步步摸索的痛苦过程,现在回想起来有些问题当初可以避免的.因此把问题解决方法和经验教训写出来,引以为戒. 写一系列的技术贴与网友们分享. 录音 arecord -D hw:2,0 -f S16_LE -r 44100 -c 2 /root/record.wav 查看音频设备命令arecord:加…
ALSA应用库是核心功能,而alsa-utils是一些工具功能集合库.单纯地播放一个wav文件,使用alsa-utils即可,如果还需要合成音频.调试音频质量,那么就需要ALSA应用库. 欲安装使用ALSA应用库,先执行下面指令, 会看到相应设备: 执行:cat /proc/asound/devices正常情况下,在你的/dev/snd会看到一些设备结点(有例外,就是内核驱动调整了结点位置)这就说明驱动支持了. 对于alsa-utils,可以执行一下aplay -h,测试是否输出,如果有信息打印…
1.amixer用于控制设置 amixer [-c card] [cmd] ./amixer contents ./amixer cset ./amixer cget 2. aplay ./aplay -l ./aplay -D hw:0,0 -r 8000 -f cd -t wav test.wav 3. arecord ./arecord -l ./arecord -D hw:0,0 -r 8000 -f cd -t wav test.wav…
以下为 ALSA-Project/FramesPeriods[1] 学习笔记 1, sample_rate: 即每秒进行多少次采样,常见的比如 8000.16000.44100和48000等 2, sample_bits: 即每次采样多少个bit,多是 16bit.其他常见有 24bits.32bits等 3, channels: 通道数,即单声道mono(1), 立体声stero(2), 1.2(3), 或是1.5(6)等 4, sample_format: 每次采样结果的表示格式, 主要区分…
(1)alsa pcm (2)g711 (3)aac (4) --------------author:pkf -------------------time:2-4 ---------------------------qq:1327706646 (1)alsa pcm (2)g711 G.711 G.711 也称为PCM(脉冲编码调制),是国际电信联盟订定出来的一套语音压缩标准,主要用于电话.它主要用脉冲编码调制对音频采样,采样率为8k每秒.它利用一个 64Kbps 未压缩通道传输语…
语音识别简介 语音识别(speech recognition)技术,也被称为自动语音识别(英语:Automatic Speech Recognition, ASR).计算机语音识别(英语:Computer Speech Recognition)或是语音转文本识别(英语:Speech To Text, STT),其目标是以计算机自动将人类的语音内容转换为相应的文字. 按照不同纬度如下分类: 按词汇量(vocabulary)大小分类: 小词汇量:几十个词: 中等词汇量:几百个到上千个词 大词汇量:几…
1. 环境测试 alsa_test.c #include #include // 官方测试代码, 运行后只要有一堆信息打印出来,即说明安装成功了. int main() { int val; printf("ALSA library version: %s\n", SND_LIB_VERSION_STR); printf("\nPCM stream types:\n"); for (v…
首先准备mplayer和alsa_lib,我的是bulidroot添加后编译自动下载的,版本分别是alsa-lib-1.1.4.1和mplayer-1.3.0. 首先编译alsa_lib: ./configure --host=arm-linux-gnueabihf --prefix=/usr/alsa-lib make make install 以上为编译alsa之后将库文件头文件等放入/user/alsa-lib 文件夹中. 然后编译mplayer: ./configure --enable…
使用ALSA播放两个频率的单音,并使用GNU Radio中的Audio Source和FFT来观测声音的频谱. #include #include #include int main(int argc, char **argv) { long loops; snd_pcm_t *handle; snd_pcm_hw_params_t *params; snd_pcm_uframes_t f…
sound/core/sound.c 实现了最顶层的file_operations,它起中转作用 sound/core/control.c 实现了控制接口的file_operations sound/core/pcm_native.c 实现了playback,capture的file_operations 这些file_operations规定了ALSA接口 怎么写驱动?实现硬件相关的代码即可: 分配,设置,注册snd_card结构体: 1. snd_card_create //里面会创建接口控…
转:https://blog.csdn.net/lugandong/article/details/72468831 一.拿512fs说话: 看图知道采样的位深是32bit(位),左右声道各占了8*32BCLK,那一个完整的LRCLK一共8*32*2=512BCLK. 其实xxxfs就是这么算出来的,也是固定的,当你定了几个channel,多少位深,就几乎可以确认是多少fs了.从主观的角度来看,fs的数值越大,那么一个完整的LRCLK越多,那承载的数据量就越大,随之的就是音质就会更加好. 上图是…
Linux 应用笔记 Linux 应用笔记 小书匠 Raspberry Pi 常用命令 CentOs Raspberry Ubuntu python 实用教程 Vim 权限问题 内存分配 shell 脚本 收藏备份 收藏 杂讯 备份 调试笔记 1708 常用命令 linux是32位还是64位 getconf LONG_BIT Linux 如何查看用户id cat /etc/passwd | grep 来查看你的ID. vcgencmd measure_clock < clo…
Linux下的音频编程中有OSS和ALSA,本篇文章将对ALSA进行相关介绍.ALSA提供一系列基于命令行的工具集,比如混音器(mixer),音频文件播放器(aplay),以及控制特定声卡特定属性的工具. 一.ALSA的 API主要分为以下几种接口:(1)控制接口:提供灵活的方式管理注册的声卡和对存在的声卡进行查询.(2)PCM接口:管理数字音频回放(playback)和录音(capture)的接口. (Pulse Code Modulation(脉冲编码调制).这个词描述了一种用数字化形式表示…
本文转载自:http://blog.csdn.net/luckywang1103/article/details/48053015 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 由于Android中默认并没有使用标准alsa,而是使用的是tinyalsa,所以就算基于命令行的测试也要使用libtinyalsa.Android系统在上层Audio千变万化的时候,可以能这些个工具实时查看到,比如音频通道的切换等等. 1.编译tinyalsa配套工具 $ mmm ex…
概述 ALSA(Advanced Linux Sound Architecture)是linux上主流的音频结构,在没有出现ALSA架构之前,一直使用的是OSS(Open Sound System)音频架构.关于OSS的退出以及ALSA的出现,可以看Linux音频驱动-OSS和ALSA声音系统简介及其比较. 关于OSS和ALSA音频架构之间的区别图如下: 主要的区别就是在OSS架构下,App访问底层是直接通过Sound设备节点访问的.而在ALSA音频架构下,App是通过ALSA提供的alsa…
一.背景: arm linux的内核版本是3.13.0 二.准备工作 添加alsa驱动到内核中,也就是在编译内核的时候加入以下选项: 接下来就重新编译内核即可 三.交叉编译alsa-lib和alsa-utils (alsa-utils是一系列的音频设备控制工具,而alsa-lib是alsa-utils依赖的库,所以先将alsa-lib编译好) 3.1交叉编译alsa-lib 3.2交叉编译alsa-utils 四.将三编译好的库及工具都拷贝至arm开发板(笔者通常直接将编译好的都压缩好之后再复制…
1. 背景 在中, 介绍了Linux音频系统, 本文主要介绍了Linux下音频编程相关内容. 音频编程主要包括播放(Playback)和录制(Record), 大概过程简单总结如下:播放: 将音频文件进行解码(Decode)生成PCM数据, 并将其送入音频设备中播出.录制: 将声音进行采集, 编码(Encode)后按照特定文件格式保存至音频文件. 2. 基础知识 2.1 声音和声卡 声音是由物体振动产生的声波, 是通过介质(空气或固体.液体)传播并能被人或动物听…
(注意:内核上电的时候会把一些没运行的控制器模块的时钟都关掉,所有在写驱动的时候需要在使用的使用使用clk_get和clk_enable使能时钟) (说明:与ALSA声卡对应的是OSS架构,第二期视频中的声卡驱动就是指的OSS架构驱动,ALSA可以模拟OSS) (amixer controls执行后返回的可设置属性里面input mux表示录音的时候的通道,在mini2440和tq2440上两者不同,需要修改) 1.裸板WAV文件格式:http://blog.chinaunix.net/uid-…
ref : https://www.cnblogs.com/yutingliuyl/p/6718875.html https://blog.csdn.net/yuanxinfei920/article/details/52954941 背景: 平台: host平台 :Ubuntu 18.04 arm平台 : S5P6818 arm-gcc :4.8.1 alsa-lib :1.0.22 alsa-utils :1.0.22 ALSA音频架构简单介绍 ALSA…
1.编译新的strace工具分析aplay和amixer应用程序对声卡的调用过程 (1)因为旧的strace工具不能识别不能识别alsa声卡驱动程序里面的ioctrl. (2)编译过程参考http://blog.csdn.net/qingkongyeyue/article/details/52228729 (3)出现错误 需要建立相关的设备节点 播放声音和调整音量 (4)等待音频播放完,能得到一个完整的log,把log文件拷贝回windows下进行分析 2.调用分析(aplay.log)(搜索设…