arecord 使用

合集下载

Linux的声音系统

Linux的声音系统

Linux的声音系统时间:2008-06-05 windrose -从Linux控制台唤起你注意的简单的“丁”声,到DVD的环绕声,今天音频已成为桌面计算的重要部分。

确实有许多计算机用户不需要声音,但是声音能够为许多计算机任务增色。

正是如此,音频硬件已经成为一个几乎所有主板和操作系统,也包括大多数Linux发行版,的通用部件。

不幸的是,配置Linux的声音是一项让人头疼的事。

在Linux中,有3套音频驱动,使用着两种不同的API。

在这些驱动之上,还有几种支持库,目的是让程序员的日子好过一点,但对最终用户增加了配置的复杂性。

实际上,对于一个普通用户,让系统发声会成为一项令人沮丧的经验。

假如某个发行版没有正确地配置好声音,最终用户面对的将是寻找、安装和调试各种模棱两可、没有完善文档的设置选项。

作为对Linux声音系统的调查,让我们从对声音架构的总体认识开始。

了解多种音频流如何混在一起同步发声也正日益重要。

在这些话题的基础上,对于特定驱动的认识就显得很必要。

声音设备文件以及它们的权限经常是发生问题的根源,所以我们也会谈到这个话题。

此外,支持声音的库文件既可以是祝福也可以是诅咒,所以了解它们也很有帮助。

在文章的结尾,当掌握了前面的基础知识,你可以测试和使用声音工具,并且设置常见发声程序的选项。

理想化地说,音频应用程序应该是直接了当的:发出一个命令或点击一个按钮,就可以听见预期中的声音。

在这个情形的背后,Linux采用了几种层次的工具来发声,如图1所示。

声音数据在某个应用程序和声卡之间准确的传输路径,取决于该程序以及系统的整体配置,会有极大的差异。

由于这个原因,追踪声音的问题也就非常困难。

到底问题是出在硬件损坏、驱动程序的编程错误、库文件的错误配置、应用程序出错还是这些问题之间的相互作用呢?如图1所示,声音库和应用程序都可以直接和声音驱动程序打交道或者依赖于其他的库。

有些应用程序和库提供了多种选择:它们既可以直接使用驱动程序也可以通过其他的库来做。

alsa-utils工具包的使用

alsa-utils工具包的使用

alsa-utils工具包的使用一.alsa-utils介绍ALSA是kernel中的一个声音驱动程序.它包括alsa核心和其他声卡的驱动. alsa-utils是alsa的一个工具包,里面包含有声卡测试和音频编辑的工具.二.alsa-utils的安装1.RPM包方式Turbolinux 10.5,11版本已经包含有alsa-utils的rpm包,你可以直接安装: # rpm -ivh alsa-utils-xxx.rpm2.源码包方式下载地址:/main/index.php/Download源码包安装方法:# tar zxvf alsa-utils-1.0.6.tar.gz# cd alsa-utils-1.0.6# ./configure# make install三.alsa-utils工具的使用alsa-utils包含的工具有:alsactl, aconnect, alsamixer, amidi, amixer, aplay, aplaymidi, arecord, arecordmidi,aseqnet, iecset, speaker-test1.alsactl的使用alsactl用来对alsa声卡驱动进行一些高级的设置.系统中装有多个声卡,它也可以支持.有时在音量控制面板无法调整的选项,可以使用alsactl来实现.alsactl可以将指定声卡的驱动程序设置信息保存到配置文件.或从配置文件中恢复指定声卡的驱动程序的设置信息.alsactl格式:alsactl [options] [store|restore] <card # or id>选项:-h, --help打印帮助信息-f, --file指定使用的配置文件,默认为/etc/asound.state.Select the configuration file to use. The default is/etc/asound.state-F, --force与恢复命令一起使用.表示最大限度的恢复设置值.-d, --debug调试模式,输出更多细节信息.-v, --version打印alsactl版本号.文件:/etc/asound.state(或使用-f指定的文件)保存有声卡所有混合器的设置信息.示例:# rm /etc/asound.state -f# alsactl store2.aconnect的使用aconnect是ALSA音序器的连接管理器.用来连接或断开ALSA音序器上的端口.端口是可以随意定义的.如,使用aconnect可以连接到任何由aseqview建立的设备端口.命令格式:aconnect [-d] [-options] sender receiveraconnect -i|-o [-options]aconnect -x选项:连接管理-d, --disconnect断开连接.-e, --exclusive使用独占模式连接端口.发送和接收端口将不能再与其他端口相连.-r, --real queue将时间包的时间戳,转换为真实时间队列的当前值.显示端口-i, --input显示存在的输入端口.-o, --output显示存在的输出端口.-l, --list显示当前的连接状态.删除连接-x, --removeall删除所有连接.示例:连接端口64:0到65:0:% aconnect 64:0 65:0这个连接是单向的,所有到发送端口64:0的数据,将被重定向到接收65:0端口.如果有另一个端口65:1,也使用64:0作为发送端口,则数据会同时发送到2个接收端口.端口连接时,使用:% aconnect -d 64:0 65:0地址也可以使用客户端的名字来代替:% aconnect External:0 Emu8000:1使用-i打印出输入端口信息.-o打印出输出端口信息.% aconnect -iclient 0: ’System’ [type=kernel]0 ’Timer ’1 ’Announce ’client 64: ’External MIDI-0’ [typ e=kernel]0 ’MIDI 0-0 ’可以使用-x选项来清除所有的连接.% aconnect -x3.alsamixer的使用alsamixer是一个终端界面的声卡音量调节器.如图:命令格式:alsamixer [options]选项:-h, -help显示帮助信息.-c <card number or idenfication>指定需要设置的声卡.默认为0.-D <device identification>选择需要控制的调节器.-g设置界面颜色.-s最小化界面窗口.快捷键:进入alsamixer界面后,可以使用下面快捷键进行控制:常规控制:左右箭头或n,p 用来选择通道.上下箭头或+,- 同时调整选定通道的左右声道的音量.B,= 设置左右声道音量相同.M 静音当前通道.<,>分别对左,右声道静音.空格选择录音源.在选定的通道上按"空格",可以标记此通道为录音源.此操作仅限输入设备.插入键或";",删除键或"'"分别选定左右通道.L 刷新屏幕.快捷设置PageUp 增大5格音量.PageDown 减小5格音量.End 设置音量为0.分别调整左,右或整个通道的音量.Q,W,E 增大左,右,通道的音量.Z,X,C 减小左,右,通道的音量.alt-q,ESC 退出.4.amidi的使用amidi的作用是对ALSA的RawMIDI端口进行读写.amidi是一个命令行工具,允许你以独占模式向MIDI设备读/写数据. 命令格式:amidi options选项:-h,-V,-l,-L 用于显示信息.-s,-r,-S,-d 用于发送/接收数据.-h, --help打印帮助信息.-V, --version打印版本号.-l, --list-devices打印所有硬件MIDI端口的列表.-L, --list-rawmidis打印所有RawMIDI定义.-p, --port=name设置要使用的ALSA RawMIDI端口.若不指定,则使用声卡0的端口0.-s, --send=filename发送指定文件的内容到MIDI端口.文件中必须包含raw MIDI 命令(.syx,.mid文件).-r, --receive=filename将MIDI端口接收的数据写入指定文件.-S, --send-hex="..."发送十六进制字节到MIDI端口.-d, --dump从MIDI端口接收数据,然后以十六进制形式打印出来.-t, --timeout=秒指定超时,当端口无数据输出达到超时时长时,将停止接收数据.示例:amidi -p hw:0 -s my_settings.syx发送my_settings.syx终端MIDI命令到端口 hw:0.amidi -S ’发送XG复位到默认端口.amidi -p virtual -d建立一个虚拟RawMIDI端口,然后发送所有数据到这个端口.5.amixer的使用amixer是命令行的ALSA声卡驱动调节器工具.amixer用来在命令行控制ALSA的调节器,并且支持多声卡.amixer不加参数时,将打印默认声卡的设置信息.命令格式:amixer [-c card] [cmd]命令:help 显示语法帮助.info 显示调节器设备的信息.scontrols 显示调节器器的完整列表 .scontents 显示包含详细信息的调节器的完整列表.set or sset <SCONTROL> <PARAMETER> ...设置调节器信息.get or sget <SCONTROL>显示调节器的信息.controls 显示声卡控制器的信息.contents 显示完整的声卡控制器信息.cset <CONTROL> <PARAMETER> ...设置声卡控制器信息.cget <CONTROL> 显示声卡控制器的信息.选项:[-c card]选择指定的声卡.[-D device]选择需要控制的设备名.默认是 default.-h Help显示帮助信息.-q安静模式.不输出设置结果.示例:# amixer -c 1 sset Line,0 80%,40% unmute cap设置第2块声卡的"line"的左声道音量为80%,右声道为40%,取消静音,并设置它为声音源.# amixer -c 2 cset numid=34 40%设置第34个声卡元素为40%.6.arecord,aplay的使用arecord,aplay是命令行的ALSA声卡驱动的录音和播放工具.arecord是命令行ALSA声卡驱动的录音程序.支持多种文件格式和多个声卡. aplay是命令行播放工具,支持多种文件格式.命令格式:arecord [flags] [filename]aplay [flags] [filename [filename]] ...选项:-h, --help帮助.--version打印版本信息.-l, --list-devices列出全部声卡和数字音频设备.-L, --list-pcms列出全部PCM定义.-D, --device=NAME指定PCM设备名称.-q --quiet安静模式.-t, --file-type TYPE文件类型(voc,wav,raw或au).-c, --channels=#设置通道号.-f --format=FORMAT设置格式.格式包括:S8 U8 S16_LE S16_BE U16_LEU16_BE S24_LE S24_BE U24_LE U24_BE S32_LE S32_BE U32_LE U32_BEFLOAT_LE FLOAT_BE FLOAT64_LE FLOAT64_BEIEC958_SUBFRAME_LEIEC958_SUBFRAME_BE MU_LAW A_LAW IMA_ADPCM MPEG GSM-r, --rate=#<Hz>设置频率.-d, --duration=#设置持续时间,单位为秒.-s, --sleep-min=#设置最小休眠时间.-M, --mmapmmap流.-N, --nonblock设置为非块模式.-B, --buffer-time=#缓冲持续时长.单位为微妙.-v, --verbose显示PCM结构和设置.-I, --separate-channels设置为每个通道一个单独文件.示例:aplay -c 1 -t raw -r 22050 -f mu_law foobar播放raw文件foobar.以22050Hz,单声道,8位,mu_law格式.arecord -d 10 -f cd -t wav -D copy foobar.wav以CD质量录制foobar.wav文件10秒钟.使用PCM的"copy".7.aplaymidi的使用aplaymidi用来播放标准的MIDI文件.aplaymidi是一个命令行工具,可以在一个或多个ALSA端口上播放MIDI 文件.命令格式:aplaymidi -p client:port[,...] [-d delay] midifile ...选项:-h, --help输出帮助信息.-V, --version输出版本信息.-l, --list输出可以使用的输出端口列表.-p, --port=client:port,...设置端口.-d, --delay=seconds设置MIDI文件结束后,等待时长.8.arecordmidi的使用arecordmidi用于录制标准的MIDI文件.arecordmidi可以从一个或多个ALSA端口上,录制一个标准MIDI文件. 命令格式:arecordmidi -p client:port[,...] [options] midifile选项:-h,--help打印帮助信息.-V,--version打印版本号.-l,--list打印可以使用的输入端口.-p,--port=client:port,...设置端口.-b,--bpm=beats设置MIDI文件的速率,默认为120 BPM.-f,--fps=frames设置帧率.-s,--split-channels设置每个通道将录制成一个单独的MIDI文件.-d,--dump在标准输出上,以文本形式显示接受到的事件信息9.aseqnet的使用aseqnet是ALSA调节器的网络连接工具.aseqnet是ALSA调节器的客户端程序,可以从网络上发送和接收事件数据包. 网络上有主机A,主机B.A为服务器端,B为客户端.ALSA调节器系统必须同事运行在两个服务器上.然后建立服务器端口:hostA% aseqnetsequencer opened: 128:0在HostB上执行:hostB% aseqnet hostAsequencer opened: 132:0现在所有发送到HostA:128:0的数据将被传送到HostB:132:0上,反之亦然. 命令格式:aseqnet [remotehost]选项:-p port指定TCP端口号或服务名.-s addr设置指定地址用于读操作.-d addr设置指定地址用于写操作.-v详细输出模式.10.iecset的使用设置或输出IEC958状态位.iecset是个小工具,通过ALSA的API,设置或输出IEC958(或称S/PDIF)状态位信息.直接运行iecset将输出当前IEC958的状态信息. 命令格式:iecset [options] [cmd arg...]选项:-D device设置需要打开的设备名.-c card设置需要打开的网卡名.-x输出AESx字节格式的状态信息.-i从标准输入读取命令信息,每行一个命令.命令:professional <bool>专业模式(true)或用户模式(false).audio <bool>音频模式(true).rate <int>采样频率,单位Hz.emphasis <int>设置加强值.0 = none, 1 = 50/15us, 2 = CCITT.lock <bool>速率锁.sbits <int>采样位:2 = 20bit, 4 = 24bit, 6 = undefined.wordlength <int>设置字长:0 = No, 2 = 22-18 bit, 4 = 23-19 bit, 5 = 24-20bit, 6 = 20-16 bit.category <int>分类:值从0到0x7f.copyright <bool>设置是否包含版权.original <boo>原始标记:示例:输出当前IEC958信息.$ iecsetMode: consumerData: audioRate: 44100 HzCopyright: permittedEmphasis: noneCategory: generalOriginal: 1st generationClock: 1000 ppm显示当前第1块声卡的IEC958状态位.$ iecset -Dhw:0Mode: consumerData: non-audioRate: 44100 HzCopyright: permittedEmphasis: noneCategory: generalOriginal: 1st generationClock: 1000 ppm设置当前为用户模式,并打开"非音频"位.$ iecset pro off audio offMode: consumerData: non-audioRate: 44100 HzCopyright: permittedEmphasis: noneCategory: generalOriginal: 1st generationClock: 1000 ppm11.speaker-test的使用speaker-test是一个针对 ALSA驱动的声音测试工具. speaker-test可以分别对左右声道进行单独的测试. 命令格式:speaker-test [-options]选项:-c | --channels NUM设置通道数目.-D | --device NAME设置使用的PCM设备名.-f | --frequency FREQ设置声音频率.--help输出帮助信息.-b | --buffer TIME设置缓冲区时长.0为使用最大的缓冲区大小.-p | --period TIME设置节拍为多少微秒.-r | --rate RATE设置音频率.-t | --test pink|sine|wav-t pink 表示测试时使用噪声.-t sine 表示测试时使用音频信号声.-t wav 表示测试时使用WAV文件.-l | --nloops COUNT设置测试循环的次数.-w | --wavfile设置测试时播放的wav文件.-W | --wavdir设置一个包含wav文件的目录.默认为/usr/share/sounds/alsa.示例:在一个音频接口上进行立体声测试# speaker-test -Dplug:front -c2在两个音频接口上进行4声道测试.# speaker-test -Dplug:surround40 -c4在立体声接口上进行5.1声道测试.# speaker-test -Dplug:surround51 -c6测试低音扬声器.# speaker-test -Dplug:surround51 -c6 -s1 -f75。

ALSA音频工具amixer,aplay,arecord

ALSA音频工具amixer,aplay,arecord

ALSA⾳频⼯具amixer,aplay,arecordALSA⾳频⼯具编译安装if (strstr(argv[0], "arecord")) {stream = SND_PCM_STREAM_CAPTURE;file_type = FORMAT_WAVE;command = "arecord";start_delay = 1;direction = stdout;} else if (strstr(argv[0], "aplay")) {stream = SND_PCM_STREAM_PLAYBACK;command = "aplay";direction = stdin;} else {error(_("command should be named either arecord or aplay"));return1;}========================================================================声⾳录制======================================================================arecord帮助提⽰信息arecord -l列出声卡和数字⾳频设备-D参数⽤于指定⾳频设备PCM以hwx,x开头根据上⾯l列出的设备,如果选择tvp5158来录制声⾳的话那么pcm设备就位hw0,0,如果是tlv320aic3x则pcm设备为hw0,1,sii9135则pcm设备为hw0,2。

声卡号,设备号-r指定采样频率:5512/8000/11025/16000/22050/32000/44100/48000/64000/88200/96000/176400/192000-f指定采样格式上⾯列出了:cd/cdr/dat/S16_LE/S32_LE/...arecord -D default:CARD=mcasp0 -d 100000 -f cd -t raw mysong15.rawarecord -D default:CARD=mcasp0 -d 100000 -f dat -t raw mysong10.rawarecord -D default:CARD=mcasp0 -d 100000 -f S16_LE -r 16000 -t raw mysong10.rawarecord -Dhw:0,1 -r8000 -f cd /a/1.wmvarecord -Dhw:0,0 -r8000 -f S16_LE -c 2 /a/1.wmvarecord -Dhw:0,2 -r48000 -f S32_LE -c 2 /a/1.wmv========================================================================声⾳播放========================================================================aplay帮助提⽰信息和aplay -l 列出声卡和数字⾳频设备-D参数⽤于指定⾳频设备PCM以hwx,x开头根据上⾯l列出的设备,如果选择tlv320aic3x来播放声⾳的话那么pcm设备就位hw0,1,如果是hdmi则pcm设备为hw0,0。

alsa学习笔记

alsa学习笔记

ALsa学习笔记1 整体架构Application---------------Alsa-lib User Space-------------------------------------Alsa Kernel Space-------sound driver----------------------------------HardwareApplication : 比如aplay ,它不是直接调用Kernel所提供的接口,而是调用ALSA-lib 的接口。

所以应用程序只要#include "asound.h"并链接libasound .对于上面的架构,在某一时刻只能有一个程序打开声卡并占有它,此时其它程序打开的话,会返回busy.如要支持同时可以多个应用程序打开声卡,需要支持混音功能,有些声卡支持硬件混音,但大部分声卡不支持硬件混音,需要软件混音。

这时需要ESD,pulseAudio 等,架构变为:App1 App2---------------ESD ,pulseaudio--------------------Alsa-lib User Space-------------------------------------Alsa Kernel Space-------sound driver----------------------------------Hardware此时,应用程序将调用ESD,pulseaudio等混音器提供的接口。

对于ESD,很多程序支持,比如mplayer . 对于pulseaudio ,有相应的patch .Alsa本身也提供混音的plugin,dmix .App1 App2---------------Alsa-lib (dmix) User Space-------------------------------------Alsa Kernel Space-------sound driver----------------------------------Hardware此架构和架构1,应用程序不需要做任何修改,只需要修改asound.conf架构1的asound.conf的例子:pcm.!default {type hwcard 0}ctl.!default {type hwcard 0}架构3的asound.conf的例子:pcm.card0 {type hwcard 0}pcm.!default {type plugslave.pcm "dmixer"}pcm.dmixer {type dmixipc_key 1025slave {pcm "hw:0,0"period_time 0period_size 4096buffer_size 16384periods 128rate 44100}bindings {0 01 1}}关于配置,可以参考这个网站:/alsa-doc/alsa-lib/pcm_plugins.html对于period_size和buffer_size,要注意,我将他们修改为1024 ,8192.在我们的平台上用dmix会出现underrun!!! 信息。

在线书籍自动转PDF电子书

在线书籍自动转PDF电子书

在线书籍自动转PDF电子书作者:俞木发来源:《电脑爱好者》2012年第09期本文的方法,将教你如何把这些书籍“搬回家”,不用再担心上不了网,并且能方便地在平板等移动设备上阅读。

先说一下原理,因为这些书籍可以在线阅读,所以我们只要将书籍页面截成图,再转换成PDF电子书即可。

不过,一般书籍都有许多页面,有些甚至有几百页,手工翻页、截图,工作量巨大,所以我们需要通过一些技巧进行自动翻页并自动截图。

最后将所有的截图再自动组合成PDF电子书。

方法看似复杂,但因为都是自动完成,所以在掌握了方法之后,最终效果异常的方便快捷。

下面以某网站提供的免费试读的图书为例,给大家演示一番。

不用动手自动截图首先我们来解决自动截图的问题。

这里推荐使用Snagit(下载地址:/soft/2291.html),作为一款强大的截图软件,Snagit提供多种截图方式和截图设置,我们只要使用Snagit自动截取指定电子书网页即可。

运行程序后单击右侧窗格预设方案下的“统一捕捉”,接着在下方的“方案设置”中,输入设置为“窗口”,选择在线书籍页面窗口作为捕捉对象(图1)。

Snagit可以根据不同电子书截取不同形状,比如电子书在需要滚动的超长网页上,“输入”可以设置“滚动窗口”,截取整张网页为图片。

如果只需要截取网页中指定部分内容,“输入”可以设置“自定义滚动窗口”,自行选择截图区域。

继续方案设置,输出设置选择“文件”,然后在展开列表选择“属性”打开输出属性窗口,切换到“图像文件”,进行如下设置(图2):1.总是使用以下文件格式选择“JPG-JPEG图像”。

2.文件名称选择“自动命名文件”。

3.文件夹选择“总是使用以下文件夹”,设置一个保存截图的目录。

单击“确定”返回Snagit主界面,单击菜单栏的“工具→程序参数设置”,在打开的窗口“全局捕捉”热键设置为F4键。

继续单击“工具→定时器设置”,在打开的窗口切换到“捕捉定时器”,执行捕捉间隔设置为5秒。

嵌入式人工智能技术应用课件:语音合成与播报

嵌入式人工智能技术应用课件:语音合成与播报

2
获取音频设备ID
3
语音合成与播报
使用Shell命令查看系统音频设备信息 1
获取音频设备ID
使用aplay工具查看系统音频设备信息
2
使用subprocess模块在Python中 获取命令行输出信息
3
使用re模块提取声卡设备ID
4
将获取音频设备ID的代码封装为函数 5
1.使用Shell命令查看系统音频设备信息
语音合成
语音合成在很多方面与语音识别相反。 它涉及到让数据发出声音,通常是通过将文 本转换为语音来实现。 语音合成解决方案通 常需要以下信息: • 要朗读的文本。 • 用于读出语音的声音。
语音合成
若要合成语音,系统通常会对文本进行词汇切分,将其分解为单独的字词,并为每个 字词指定语声。 接着将语音听录分解为韵律单元(如短语、分句或句子),以创建将被转 换为音频格式的音素。 然后通过加上声音(这将确定音调和音色等参数)和生成可以输出 到扬声器或写入文件的音频波形,将这些音素合成音频。
将“能看到”、“看不到”的信息变成“可听”的信息。 将“非即时获得的信息”变成“即时可听”的信息。
语音合成
音频在各行各业都有广 泛使用,主要包括音频播放, 录音,以及现在广泛用在了 语音识别等人工智能方向, 我们越来越希望人工智能 (AI) 解决方案能够接受语音 命令并提供语音响应。
语音合成
越来越多的家居和汽车系统可以通过讲话来进行控制 - 发出诸如“关灯” 之类的命令,以及希望获得对“今天会下雨吗”之类的问题的口头回答。
4. 使用re模块提取声卡设备ID
re.findall(pattern, string, flags=0):对 string 返回一个不重复的 pattern 的匹配列表, string 从左到右进

arecord用法(二)

arecord用法(二)

arecord用法(二)Arecord用法Arecord是一种强大的录音工具,可在Linux系统上使用。

它具有丰富的功能和灵活的用法,本文将介绍一些常用的Arecord用法,并提供详细的讲解。

安装Arecord要使用Arecord,首先需要在Linux系统上安装它。

你可以通过以下命令来安装Arecord:sudo apt-get install alsa-utils安装完成后,你就可以开始使用Arecord进行录音了。

录音设备选择在开始录音之前,你需要选择合适的录音设备。

你可以通过以下命令查看系统中可用的录音设备列表:arecord -l该命令将列出所有可用的录音设备及其参数,如设备名称、子设备号和硬件ID等。

录制音频文件要录制音频文件,使用以下命令:arecord -f FORMAT -r RATE -c CHANNELS -d DURATION -t FILETYPE FILENAME•FORMAT:指定音频格式,常用的格式包括”cd”()和”dvd”(48kHz)等。

•RATE:指定采样率,常用的采样率为8000、16000、44100等。

•CHANNELS:指定声道数,常用的是1(单声道)和2(立体声)。

•DURATION:指定录音时长,单位为秒。

•FILETYPE:指定保存的音频文件类型,常用的是WAV格式(.wav)。

•FILENAME:指定保存的音频文件名。

以下是一个示例:arecord -f cd -r 44100 -c 2 -d 10 -t wav该命令将录制一段10秒钟的立体声音频,并保存为文件。

录音参数调整Arecord还提供了一些额外的参数,用于调整录音的质量和效果。

以下是一些常用的参数:•-D DEVICE:指定录音设备,可以是设备名称或硬件ID。

•-v:显示录音过程中的详细信息。

•-q:启用静默模式,不显示任何信息。

•-t DURATION:设置录音时长,单位可以是小时(h)、分钟(m)或秒(s)。

arecord用法

arecord用法

arecord用法Arecord是一个用于音频录制的命令行工具,它是ALSA(Advanced Linux Sound Architecture)项目的一部分。

ALSA是一个Linux内核中的音频驱动程序,它提供了一个统一的音频接口,允许用户通过ALSA库来访问和控制音频设备。

Arecord工具可以用于录制音频数据,并保存到本地文件中。

它支持多种音频格式和参数配置,可以灵活地满足各种录音需求。

以下是Arecord的基本用法和一些常用参数的解释:1. aplay [OPTION]... [FILE]:录制音频并播放。

2. --device, -D device:指定音频设备的名称或编号。

可以通过命令`arecord -L`查看可用的音频设备列表。

3. --format, -f format:指定音频数据的格式。

常用的格式包括S16_LE(16位小端字节序)、S16_BE(16位大端字节序)、S32_LE(32位小端字节序)等。

4. --channels, -c channels:指定录音的声道数。

常用的声道数有1(单声道)和2(立体声)。

6. --duration, -d duration:指定录音的时长,单位为秒。

7. --file-type, -t file_type:指定录音文件的类型。

常用的类型包括wav、raw、flac等。

8. --file-size, -B size:指定录音文件的最大尺寸。

单位可以是字节(B)、千字节(K)或兆字节(M)。

9. --file-trigger, -T trigger:指定录音文件的触发条件。

常用的条件有size(按文件大小触发)和none(不触发)。

10. --buffer-size, -b buffer_size:指定录音缓冲区的大小。

较大的缓冲区大小可以减少因系统负载而导致的录音中断现象。

11. --quiet, -q:静音模式,不输出录音过程的信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

arecord 使用一.alsa-utils介绍ALSA是kernel中的一个声音驱动程序.它包括alsa核心和其他声卡的驱动.alsa-utils是alsa的一个工具包,里面包含有声卡测试和音频编辑的工具.二.alsa-utils的安装1.RPM包方式Turbolinux 10.5,11版本已经包含有alsa-utils的rpm包,你可以直接安装:# rpm -ivh alsa-utils-xxx.rpm2.源码包方式下载地址:/main/index.php/Download源码包安装方法:# tar zxvf alsa-utils-1.0.6.tar.gz# cd alsa-utils-1.0.6# ./configure# make install三.alsa-utils工具的使用alsa-utils包含的工具有:alsactl, aconnect, alsamixer, amidi, amixer, aplay, aplaymidi, arecord, arecordmidi,aseqnet, iecset, speaker-test1.alsactl的使用alsactl用来对alsa声卡驱动进行一些高级的设置.系统中装有多个声卡,它也可以支持.有时在音量控制面板无法调整的选项,可以使用alsactl来实现.alsactl可以将指定声卡的驱动程序设置信息保存到配置文件.或从配置文件中恢复指定声卡的驱动程序的设置信息.alsactl格式:alsactl [options] [store|restore]选项:-h, --help打印帮助信息-f, --file指定使用的配置文件,默认为/etc/asound.state.Select the configuration file to use. The default is/etc/asound.state-F, --force与恢复命令一起使用.表示最大限度的恢复设置值.-d, --debug调试模式,输出更多细节信息.-v, --version打印alsactl版本号.文件:/etc/asound.state(或使用-f指定的文件)保存有声卡所有混合器的设置信息.示例:# rm /etc/asound.state -f# alsactl store2.aconnect的使用aconnect是ALSA音序器的连接管理器.用来连接或断开ALSA音序器上的端口.端口是可以随意定义的.如,使用aconnect可以连接到任何由aseqview建立的设备端口.命令格式:aconnect [-d] [-options] sender receiveraconnect -i|-o [-options]aconnect -x选项:连接管理-d, --disconnect断开连接.-e, --exclusive使用独占模式连接端口.发送和接收端口将不能再与其他端口相连.-r, --real queue将时间包的时间戳,转换为真实时间队列的当前值.显示端口-i, --input显示存在的输入端口.-o, --output显示存在的输出端口.-l, --list显示当前的连接状态.删除连接-x, --removeall删除所有连接.示例:连接端口64:0到65:0:% aconnect 64:0 65:0这个连接是单向的,所有到发送端口64:0的数据,将被重定向到接收65:0端口.如果有另一个端口65:1,也使用64:0作为发送端口,则数据会同时发送到2个接收端口.端口连接时,使用:% aconnect -d 64:0 65:0地址也可以使用客户端的名字来代替:% aconnect External:0 Emu8000:1使用-i打印出输入端口信息.-o打印出输出端口信息.% aconnect -ic lient 0: ’System’ [type=kernel]0 ’Timer ’1 ’Announce ’client 64: ’External MIDI-0’ [type=kernel]0 ’MIDI 0-0 ’可以使用-x选项来清除所有的连接.% aconnect -x3.alsamixer的使用alsamixer是一个终端界面的声卡音量调节器.如图:命令格式:alsamixer [options]选项:-h, -help显示帮助信息.-c指定需要设置的声卡.默认为0.-D选择需要控制的调节器.-g设置界面颜色.-s最小化界面窗口.快捷键:进入alsamixer界面后,可以使用下面快捷键进行控制:常规控制:左右箭头或n,p 用来选择通道.上下箭头或+,- 同时调整选定通道的左右声道的音量.B,= 设置左右声道音量相同.M 静音当前通道.分别对左,右声道静音.空格选择录音源.在选定的通道上按"空格",可以标记此通道为录音源.此操作仅限输入设备.插入键或";",删除键或"'"分别选定左右通道.L 刷新屏幕.快捷设置PageUp 增大5格音量.PageDown 减小5格音量.End 设置音量为0.分别调整左,右或整个通道的音量.Q,W,E 增大左,右,通道的音量.Z,X,C 减小左,右,通道的音量.alt-q,ESC 退出.4.amidi的使用amidi的作用是对ALSA的RawMIDI端口进行读写.amidi是一个命令行工具,允许你以独占模式向MIDI设备读/写数据.命令格式:amidi options选项:-h,-V,-l,-L 用于显示信息.-s,-r,-S,-d 用于发送/接收数据.-h, --help打印帮助信息.-V, --version打印版本号.-l, --list-devices打印所有硬件MIDI端口的列表.-L, --list-rawmidis打印所有RawMIDI定义.-p, --port=name设置要使用的ALSA RawMIDI端口.若不指定,则使用声卡0的端口0.-s, --send=filename发送指定文件的内容到MIDI端口.文件中必须包含raw MIDI命令(.syx,.mid文件).-r, --receive=filename将MIDI端口接收的数据写入指定文件.-S, --send-hex="..."发送十六进制字节到MIDI端口.-d, --dump从MIDI端口接收数据,然后以十六进制形式打印出来.-t, --timeout=秒指定超时,当端口无数据输出达到超时时长时,将停止接收数据.示例:amidi -p hw:0 -s my_settings.syx发送my_settings.syx终端MIDI命令到端口hw:0.amidi -S ’发送XG复位到默认端口.amidi -p virtual -d建立一个虚拟RawMIDI端口,然后发送所有数据到这个端口.5.amixer的使用amixer是命令行的ALSA声卡驱动调节器工具.amixer用来在命令行控制ALSA的调节器,并且支持多声卡. amixer不加参数时,将打印默认声卡的设置信息.命令格式:amixer [-c card] [cmd]命令:help 显示语法帮助.info 显示调节器设备的信息.scontrols 显示调节器器的完整列表 .scontents 显示包含详细信息的调节器的完整列表.set or sset ...设置调节器信息.get or sget显示调节器的信息.controls 显示声卡控制器的信息.contents 显示完整的声卡控制器信息.cset ...设置声卡控制器信息.cget 显示声卡控制器的信息.选项:[-c card]选择指定的声卡.[-D device]选择需要控制的设备名.默认是default.-h Help显示帮助信息.-q安静模式.不输出设置结果.示例:# amixer -c 1 sset Line,0 80%,40% unmute cap 设置第2块声卡的"line"的左声道音量为80%,右声道为40%,取消静音,并设置它为声音源.# amixer -c 2 cset numid=34 40%设置第34个声卡元素为40%.6.arecord,aplay的使用arecord,aplay是命令行的ALSA声卡驱动的录音和播放工具.arecord是命令行ALSA声卡驱动的录音程序.支持多种文件格式和多个声卡.aplay是命令行播放工具,支持多种文件格式.命令格式:arecord [flags] [filename]aplay [flags] [filename [filename]] ...选项:-h, --help帮助.--version打印版本信息.-l, --list-devices列出全部声卡和数字音频设备.-L, --list-pcms列出全部PCM定义.-D, --device=NAME指定PCM设备名称.-q --quiet安静模式.-t, --file-type TYPE文件类型(voc,wav,raw或au).-c, --channels=#设置通道号.-f --format=FORMAT设置格式.格式包括:S8 U8 S16_LE S16_BE U16_LEU16_BE S24_LE S24_BE U24_LEU24_BE S32_LE S32_BE U32_LE U32_BEFLOAT_LE FLOAT_BE FLOAT64_LE FLOAT64_BE IEC958_SUBFRAME_LEIEC958_SUBFRAME_BE MU_LAWA_LAW IMA_ADPCM MPEG GSM-r, --rate=#设置频率.-d, --duration=#设置持续时间,单位为秒.-s, --sleep-min=#设置最小休眠时间.-M, --mmapmmap流.-N, --nonblock设置为非块模式.-B, --buffer-time=#缓冲持续时长.单位为微妙.-v, --verbose显示PCM结构和设置.-I, --separate-channels设置为每个通道一个单独文件.示例:aplay -c 1 -t raw -r 22050 -f mu_law foobar 播放raw文件foobar.以22050Hz,单声道,8位,mu_law格式.arecord -d 10 -f cd -t wav -D copy foobar.wav 以CD质量录制foobar.wav文件10秒钟.使用PCM的"copy".7.aplaymidi的使用aplaymidi用来播放标准的MIDI文件.aplaymidi是一个命令行工具,可以在一个或多个ALSA端口上播放MIDI文件.命令格式:aplaymidi -p client:port[,...] [-d delay] midifile ...选项:-h, --help输出帮助信息.-V, --version输出版本信息.-l, --list输出可以使用的输出端口列表.-p, --port=client:port,...设置端口.-d, --delay=seconds设置MIDI文件结束后,等待时长.8.arecordmidi的使用arecordmidi用于录制标准的MIDI文件.arecordmidi可以从一个或多个ALSA端口上,录制一个标准MIDI文件.命令格式:arecordmidi -p client:port[,...] [options] midifile选项:-h,--help打印帮助信息.-V,--version打印版本号.-l,--list打印可以使用的输入端口.-p,--port=client:port,...设置端口.-b,--bpm=beats设置MIDI文件的速率,默认为120 BPM.-f,--fps=frames设置帧率.-s,--split-channels设置每个通道将录制成一个单独的MIDI文件.-d,--dump在标准输出上,以文本形式显示接受到的事件信息9.aseqnet的使用aseqnet是ALSA调节器的网络连接工具.aseqnet是ALSA调节器的客户端程序,可以从网络上发送和接收事件数据包.网络上有主机A,主机B.A为服务器端,B为客户端.ALSA调节器系统必须同事运行在两个服务器上.然后建立服务器端口:hostA% aseqnetsequencer opened: 128:0在HostB上执行:hostB% aseqnet hostAsequencer opened: 132:0现在所有发送到HostA:128:0的数据将被传送到HostB:132:0上,反之亦然.命令格式:aseqnet [remotehost]选项:-p port指定TCP端口号或服务名.-s addr设置指定地址用于读操作.-d addr设置指定地址用于写操作.-v详细输出模式.10.iecset的使用设置或输出IEC958状态位.iecset是个小工具,通过ALSA的API,设置或输出IEC958(或称S/PDIF)状态位信息.直接运行iecset将输出当前IEC958的状态信息. 命令格式: iecset [options] [cmd arg...]选项:-D device设置需要打开的设备名.-c card设置需要打开的网卡名.-x输出AESx字节格式的状态信息.-i从标准输入读取命令信息,每行一个命令.命令:professional专业模式(true)或用户模式(false).audio音频模式(true).rate采样频率,单位Hz.emphasis设置加强值.0 = none, 1 = 50/15us, 2 = CCITT.lock速率锁.sbits采样位:2 = 20bit, 4 = 24bit, 6 = undefined.wordlength设置字长:0 = No, 2 = 22-18 bit, 4 = 23-19 bit, 5 = 24-20bit, 6 = 20-16 bit.category分类:值从0到0x7f.copyright设置是否包含版权.original原始标记:示例:输出当前IEC958信息.$ iecsetData: audioRate: 44100 HzCopyright: permittedEmphasis: noneCategory: generalOriginal: 1st generationClock: 1000 ppm显示当前第1块声卡的IEC958状态位. $ iecset -Dhw:0Mode: consumerData: non-audioRate: 44100 HzCopyright: permittedEmphasis: noneCategory: generalOriginal: 1st generationClock: 1000 ppm设置当前为用户模式,并打开"非音频"位. $ iecset pro off audio offData: non-audioRate: 44100 HzCopyright: permittedEmphasis: noneCategory: generalOriginal: 1st generationClock: 1000 ppm11.speaker-test的使用speaker-test是一个针对ALSA驱动的声音测试工具. speaker-test可以分别对左右声道进行单独的测试.命令格式:speaker-test [-options]选项:-c | --channels NUM设置通道数目.-D | --device NAME设置使用的PCM设备名.-f | --frequency FREQ设置声音频率.--help输出帮助信息.-b | --buffer TIME设置缓冲区时长.0为使用最大的缓冲区大小.-p | --period TIME设置节拍为多少微秒.-r | --rate RATE设置音频率.-t | --test pink|sine|wav-t pink 表示测试时使用噪声.-t sine 表示测试时使用音频信号声.-t wav 表示测试时使用WAV文件.-l | --nloops COUNT设置测试循环的次数.-w | --wavfile设置测试时播放的wav文件.-W | --wavdir设置一个包含wav文件的目录.默认为/usr/share/sounds/alsa.示例:在一个音频接口上进行立体声测试# speaker-test -Dplug:front -c2在两个音频接口上进行4声道测试.# speaker-test -Dplug:surround40 -c4在立体声接口上进行5.1声道测试.# speaker-test -Dplug:surround51 -c6测试低音扬声器.# speaker-test -Dplug:surround51 -c6 -s1 -f75。

相关文档
最新文档