在纯字符界面下听歌

利用 play 命令可以在命令行中播放音频文件,在纯字符界面下也没问题!

------------------------------------------------------------------------------------------- 
我们可以用 man 命令先查看一下 play 的手册页:“play 和 rec 命令分别用于播放和录制音频文件”

好,先来听一听 *.wav 格式的音频文件:

# play /usr/share/sounds/KDE_Startup.wav 
或者 
# play /usr/share/sounds/KDE_Startup_new.wav

这两个好像是KDE的登录音乐

------------------------------------------------------------------------------------------- 
但是现在播放 mp3 文件还是有问题,我们需要下载相关的编、解码器:

libmp3lame 和 libmp3lame-devel (这两个是编码器)

mad (这是解码器)

我们可以从 rpmfind.net 网站上搜索并下载这三个包;

我搜索并安装的是:(注:我的系统为 redhat AS4 ) 
libmp3lame-3.95.1-1.i386.rpm 
libmp3lame-devel-3.95.1-1.i386.rpm 
mad-0.14.2b-1.i386.rpm

安装之后就可以 play 命令播放 mp3 文件了!

但是用此命令播放的音乐效果比较差,只能凑合着听 :(

------------------------------------------------------------------------------------------- 
------------------------------------------------------------------------------------------- 
一个简单的 play 命令为什么就能播放音频文件呢?

我们可以看一下此命令的源代码:# vi /usr/bin/play

会发现它其实调用的是 sox 命令!

(看 man 手册页也会发现 play 和 rec 是 sox 命令的前端程序)

sox 是什么呢?它是一个功能强大的音频处理程序,可以用于播放、录制音频文件、转换音频格式、添加特殊音效;

------------------------------------------------------------------------------------------- 
sox 全称为:Sound eXchange

是一个命令行下的音频处理程序,可以用来将音频文件在各种不同的格式间相互转换,例如 mp3 转 wav,

或者 wav 转 mp3 等等;可以对音频文件长短进行裁剪;还可以为音频文件添加各种特殊音效。

sox 支持的音频格式有:

RAW sound data in various data styles 
RAW textual sound data 
Amiga 8svx files 
Apple/SGI AIFF files 
SUN .au files 
PCM, U-law, A-law, G7xx ADPCM files 
mutant DEC .au files 
NeXT .snd files 
AVR files 
CD-R data (music CD format) 
CVS and VMS files (continous variable slope) 
GSM raw data (with optional library) 
Macintosh HCOM files 
Amiga MAUD files 
MP3 files (with optional external library) 
Psion Record.app files 
IRCAM SoundFile files 
NIST SPHERE files 
Turtle beach SampleVision files 
Soundtool (DOS) files 
Yamaha TX-16W sampler files 
Sound Blaster .VOC files 
Dialogic/OKI ADPCM .VOX files 
Ogg Vorbis files 
Microsoft .WAV files 
PCM, U-law, A-law, MS ADPCM, IMA ADPCM, GSM (optional), RIFX (big endian) 
Psion (palmtop) A-law .WVE files 
Record and Play from OSS or ALSA /dev/dsp and Sun /dev/audio. 
nul file type that reads and writes from/to nothing.

对音频文件可设置的音效有:

Channel averaging, duplication, and removal 
Band-pass filter 
Band-reject filter 
Compress and Expand (compand) the dynamic range of samples 
Chorus effect 
DCShift audio 
Deemphases filter 
Move soundstage to front of listener. 
Add an echo or sequence of echos 
Fade in or out 
Apply a flanger effect 
Apply a high-pass filter 
Apply a low-pass filter 
Display a list of loops in a file 
Add masking noise to a signal 
Multi-band Compander 
Pan sound between channels 
Apply a phaser effect 
Change the pitch of a sound file without affecting its speed. 
Change sampling rates using several different algorithms. 
Repeat audio data 
Apply a reverb effect 
Reverse sound samples (to search for Satanic messages
Detect periods of silence and start and stop processing based on it 
Change the speed of samples being played (without affecting pitch) 
Display general stats on sound samples 
Stretch/shorten the duration of a sound file. 
Swap stereo channels 
Create sounds with a simple synthesizer 
Trim audio data from beginning and end of file. 
Add the world-famous Fender Vibro-Champ effect 
Adjust volume of samples.

在我们的 Linux 发行版中一般会默认安装了 sox 程序包,可以用 rpm -qa sox 查看;

如果没有安装,那么可以从 http://sox.sourceforge.net/ 网站下载最新的源码包:

sox-12.18.2.tar.gz

解压后编译安装即可;

------------------------------------------------------------------------------------------- 
下面我们举几个简单的例子,来看一下如何使用 sox 来处理音频文件:

(1) 转换音频格式:

# sox file.mp3 new.wav

(2) 查看音频文件的信息:

# sox file.mp3 -e stat

(3) 裁剪音频文件:

# sox file.mp3 new.mp3 trim 5 40 (注:选项 trim 用于裁剪文件)

执行此命令后生成的 new.mp3 文件是 file.mp3 文件的 5 秒至 40 秒之间的数据;

(4) 设置“淡入淡出”效果:

# sox file.mp3 faded.mp3 fade 5 240 5 (注:选项 fade 用于设置淡入淡出)

生成的 faded.mp3 的前 5 秒和最后 5 秒为渐强和减弱音;(240 是整个音频文件的播放时间)

(5) 设置“颤音”效果:

格式:sox file.mp3 new.mp3 vibro [speed] [depth] 
(注:speed 值应小于 30,depth 值应在 0.5 到 1 之间)

# sox file.mp3 new.mp3 vibro 10 0.5

自己听听效果吧

(6) 设置快速播放效果:

# sox file.mp3 new.mp3 speed 2 (注:选项 speed 用于设置加速效果)

生成的 new.mp3 的播放速度是原文件的 2 倍。

------------------------------------------------------------------------------------------- 
其他功能还有很多,我就不一一列举了。

详细内容可以参照 man 手册页:# man sox

虽然 play 命令可以在纯字符界面下播放音乐,但音效比较差,所以还是建议大家用 xmms 在图形界面下听吧

 
 
 

做一只勇往直前的小企鹅~~

命令行听歌http://www.linuxsir.org/bbs/thread280142.html?pageon=1#1584689的更多相关文章

  1. 如何用命令行执行loadrunner的脚本

    SET M_ROOT=D:\Mercury Interactive\Mercury LoadRunner\bin cd %M_ROOT% wlrun.exe -TestPath D:\ceshi10\ ...

  2. MellPlayer, 基于网易云歌单的命令行播放器

    MellPlayer 前言 我写代码时非常喜欢听音乐,最近在网易云歌单中听到了许多入耳惊艳的歌,觉得非常不错.但是歌单的随机播放以及快速切换是个软肋,于是开发了MellPlayer,可以按照分类随机听 ...

  3. Ubantu下面命令听歌(豆瓣fm)

    在Linux下一直是不太方便的事情,下面推荐一个方法: 终端中输入以下命令安装豆瓣fm: >> sudo pip install douban.fm >> sudo apt-g ...

  4. Zookeeper命令行操作(常用命令;客户端连接;查看znode路径;创建节点;获取znode数据,查看节点内容,设置节点内容,删除节点;监听znode事件;telnet连接zookeeper)

    8.1.常用命令 启动ZK服务 bin/zkServer.sh start 查看ZK服务状态 bin/zkServer.sh status 停止ZK服务 bin/zkServer.sh stop 重启 ...

  5. TensorFlow-谷歌深度学习库 命令行参数

    程序的入口: tf.app.run tf.app.run( main=None, argv=None ) 运行程序,可以提供'main'函数以及函数参数列表.处理flag解析然后执行main函数. 什 ...

  6. 从零开始,做一个NodeJS博客(三):API实现-加载网易云音乐听歌排行

    标签: NodeJS 0 研究了一天,翻遍了GitHub上各种网易云API库,也没有找到我想要的听歌排行API,可能这功能比较小众吧.但收获也不是没有,在 这里 明白了云音乐API加密的凶险,我等蒟蒻 ...

  7. 推荐一个高大上的网易云音乐命令行播放工具:musicbox

    网易云音乐上有很多适合程序猿的歌单,但是今天文章介绍的不是这些适合程序员工作时听的歌,而是一个用Python开发的开源播放器,专门适用于网易云音乐的播放.这个播放器的名称为MusicBox, 特色是用 ...

  8. 基于c开发的全命令行音频播放器

    cmus是一个内置了音频播放器的强大的音乐文件管理器.用它的基于ncurses的命令行界面,你可以浏览你的音乐库,并从播放列表或队列中播放音乐,这一切都是在命令行下. Linux上安装cmus 首先, ...

  9. 用其他音乐源帮帮网易云,Windows听歌利器

    镜像文章 1.用其他音乐源帮帮网易云,Ubuntu听歌利器 2.用其他音乐源帮帮网易云,Android听歌利器 只剩下Windows端了,一并送上. 1.Windows懒人版 1.1第一种懒人方法 下 ...

随机推荐

  1. 关于Java中StringBuffer的capacity问题

    从API查到capacity的作用是查看StringBuffer的容器容量是多少,刚开始纳闷这个跟length的区别在哪?试验了几次感觉有点不解.所以直接跟进源码分析. 直接通过new StringB ...

  2. CentOS 7 下使用yum安装MySQL5.7.20

    CentOS7默认数据库是mariadb, 但是 好多用的都是mysql ,但是CentOS7的yum源中默认好像是没有mysql的. 上一篇安装的是5.6的但是我想安装5.7的  yum安装是最简单 ...

  3. JAVA 重写equals和重写hashCode

    面试官可能会问你:“你重写过 hashcode 和 equals 么,为什么重写equals时必须重写hashCode方法?” 首先你需要了解: hashCode()的作用是获取哈希码(散列码) 它实 ...

  4. fiddler学习总结--手机端(APP/微信小程序)抓包

    步骤一.手机和电脑要在同一个局域网中 步骤二.完成fiddler的基本配置,与web端抓包一样: TOOLS-->options-->connections-->1.设置端口:2.勾 ...

  5. SLF4J bindings

    see: https://www.slf4j.org/manual.html

  6. vue移动端金融UI组件库滴滴MandMobile面向金融场景设计附功能思维导图

    vue移动端金融UI组件库滴滴MandMobile面向金融场景设计附功能思维导图 Mand Mobile是面向金融场景设计的移动端组件库,基于Vue.js实现.目前已实际应用于滴滴四大金融业务板块的1 ...

  7. Python自然语言处理笔记【二】文本分类之监督式分类的细节问题

    一.选择正确的特征 1.建立分类器的工作中如何选择相关特征,并且为其编码来表示这些特征是首要问题. 2.特征提取,要避免过拟合或者欠拟合 过拟合,是提供的特征太多,使得算法高度依赖训练数据的特性,而对 ...

  8. 国服最强JWT生成Token做登录校验讲解,看完保证你学会!

    转载于:https://blog.csdn.net/u011277123/article/details/78918390 Free码农 2017-12-28 00:08:02 JWT简介 JWT(j ...

  9. rangeOfString 和 containsString 兼容iOS7处理

    //查找字符串是否包含"心" NSString *str = @"每天都有好心情"; if ([str containsString:@"心" ...

  10. pageUtil分页工具

    分页工具: https://www.cnblogs.com/ggq-insist-qiang/articles/10095603.html