日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sox处理mp3_SoX 音频处理工具使用方法

發布時間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sox处理mp3_SoX 音频处理工具使用方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、簡介

SoX 可以讀取和寫入常見格式的音頻文件,并在此過程中選擇性的加入一些聲音效果。它可以組合多個輸入源及合成音效,在許多系統上也可以作為音頻播放器或多軌錄音機使用。

SoX 工具在大部分 Linux 系統上都可以直接通過軟件包管理器安裝(如sudo apt-get install sox),Mac 系統上則可以使用brew install sox命令。

SoX 處理音頻的基本流程如下:

Input(s) -> Combiner -> Effects -> Output(s)

SoX 工具的所有功能都可以通過一個簡單的sox命令及相應的選項實現。但它同時提供了play命令用于播放音頻文件,rec命令用于錄制音頻,以及soxi命令用于獲取音頻的文件頭中包含的信息。

上述幾個命令的基本格式如下:

SYNOPSIS

sox [global-options] [format-options] infile1

[[format-options] infile2] ... [format-options] outfile

[effect [effect-options]] ...

play [global-options] [format-options] infile1

[[format-options] infile2] ... [format-options]

[effect [effect-options]] ...

rec [global-options] [format-options] outfile

[effect [effect-options]] ...

soxi [-V[level]] [-T] [-t|-r|-c|-s|-d|-D|-b|-B|-p|-e|-a] infile1 ...

二、基本使用

1. 獲取音頻文件的元數據

soxi或sox --i命令可以通過分析音頻文件的文件頭,獲取其元數據(如通道數、采樣率、編碼等)。

$ soxi Faded.wav

Input File : 'Faded.wav'

Channels : 2

Sample Rate : 44100

Precision : 16-bit

Duration : 00:03:32.63 = 9376836 samples = 15947 CDDA sectors

File Size : 37.5M

Bit Rate : 1.41M

Sample Encoding: 16-bit Signed Integer PCM

soxi 命令跟上某個特定的選項可以只獲取該選項對應的信息,如只顯示某音頻文件Faded.wav的比特率(Bit Rate):

$ soxi -B Faded.wav

1.41M

soxi 命令支持的所有選項及其含義如下:

$ soxi

Usage: soxi [-V[level]] [-T] [-t|-r|-c|-s|-d|-D|-b|-B|-p|-e|-a] infile1 ...

-t Show detected file-type

-r Show sample-rate

-c Show number of channels

-s Show number of samples (0 if unavailable)

-d Show duration in hours, minutes and seconds (0 if unavailable)

-D Show duration in seconds (0 if unavailable)

-b Show number of bits per sample (0 if not applicable)

-B Show the bitrate averaged over the whole file (0 if unavailable)

-p Show estimated sample precision in bits

-e Show the name of the audio encoding

-a Show file comments (annotations) if available

With no options, as much information as is available is shown for

each given file.

2. 獲取音頻的統計信息

可以使用sox -n stat命令獲取某音頻文件的統計信息。示例如下:

$ sox Faded.wav -n stat

Samples read: 18753672

Length (seconds): 212.626667

Scaled by: 2147483647.0

Maximum amplitude: 0.977417

Minimum amplitude: -0.977478

Midline amplitude: -0.000031

Mean norm: 0.229415

Mean amplitude: -0.000006

RMS amplitude: 0.302594

Maximum delta: 1.765564

Minimum delta: 0.000000

Mean delta: 0.202369

RMS delta: 0.273320

Rough frequency: 6339

Volume adjustment: 1.023

3. 播放與錄制

play和rec命令提供了最基本的播放和錄制功能。

播放:$ play existing-file.wav

錄制:$ rec new-file.wav

上述命令等同于 sox 命令的如下形式:

$ sox existing-file.wav ?d(播放)和sox ?d new-file.wav(錄制)

其中-d選項用于指定播放或錄制時使用的音頻設備,不指定時則表示使用默認設備。

可以這樣理解:

sox existing-file.wav -d就是從existing-file.wav文件中讀取其包含的音頻數據,再輸出到-d(默認音頻設備,揚聲器)進行播放;

-sox -d new-file.wav就是從-d(默認音頻設備,麥克風)中讀取音頻數據,再輸出(錄制)到new-file.wav文件中。

其實都遵循了一個基本的格式,即sox 。而其中的和根據需要既可以為某個具體的音頻文件,也可以是某個具體的音頻設備。

播放或錄制的同時,也可以對音頻文件應用指定的編輯操作或效果選項,因此在對音頻數據應用某效果前,可以先使用play 命令進行“預覽”。

如trim效果可以從音頻文件中裁剪提取指定的片段到輸出文件。play命令通過該效果可以直接播放指定片段:

$ play foo.wav trim 10.0 5.0或 $play foo.wav trim 10.0 =15.0

播放foo.wav文件中 10-15s 之間的音頻片段

使用echo效果播放Faded.wav文件:

$ play Faded.wav echo 0.8 0.88 200.0 0.4

Faded.wav:

File Size: 37.5M Bit Rate: 1.41M

Encoding: Signed PCM

Channels: 2 @ 16-bit

Samplerate: 44100Hz

Replaygain: off

Duration: 00:03:32.63

In:12.1% 00:00:25.82 [00:03:06.81] Out:1.14M [-=====|=====-] Hd:2.7 Clip:0

4. 音頻格式轉換

文件格式類型

對于音頻數據格式的描述,主要通過以下 4 種屬性:

采樣率(sample rate):指聲音由模擬信號轉換成數字信號的過程中,每秒從連續信號中提取的用于組成離散信號的樣本個數。

音頻CD所用的采樣率為 44100 Hz,數字音頻磁帶和許多計算機系統使用 48000 Hz,專業級音頻系統通常使用 96000 Hz。

采樣大小(sample size 或 Precision):音頻采樣時用于存儲每個樣本的數據位數(bits)。如今 16 bit 的采樣大小已被廣泛使用,24 bit 主要用于專業音頻領域。

編碼格式(data encoding):即每個音頻樣本的表示(即“編碼”)方式。常用的編碼類型包括 floating-point、μ-law、ADPCM、singed-integer PCM、MP3 和 FLAC 等。

通道(channel):即文件中包含的音頻通道的數量。其中單聲道(mono)和雙聲道(stereo)是最常見的兩種,“環繞聲”音頻(Surround sound)通常包含六個或更多聲道。

此外,音頻文件還使用比特率(Bit Rate)表示一個單位時間內編碼音頻信號占用的存儲空間大小, 它的數值一般取決于所有的上述四個參數。

MP3 編碼的立體聲音樂通常具有 128-196kbps 的比特率, FLAC 編碼的立體聲音樂通常具有 550-760kbps 的比特率。

格式轉換

形式最簡單的 sox 命令即使用兩個文件名作為參數,如:

$ sox Faded.wav Faded.mp3:將Faded.wav文件的格式由wav轉為mp3

上述命令執行時,SoX 會先從Faded.wav文件中讀取音頻數據,再將其輸出到Faded.mp3文件中。而 SoX 程序會根據參數中文件名的后綴推斷出相應的格式,并在復制音頻數據的過程中自動進行轉碼。

SoX 可以處理self-describing和raw格式的音頻文件。

self-describing格式(如 WAV、FLAC、MP3)的文件包含一個用于描述信號和編碼屬性的文件頭,而raw或headless格式的音頻則不包含這些信息。

所以當raw格式的音頻作為輸入文件時,需要在 sox 命令的格式選項里指定其信號和編碼屬性。

常用的音頻格式選項:

選項

描述

-b, --bits BITS

每個編碼樣本占用的數據位數

-c, --channels CHANNELS

音頻文件包含的通道數

-e, --encoding ENCODING

音頻文件的編碼類型

-r, --rate RATE

音頻文件的采樣率

-t, --type FILE-TYP

E音頻文件的文件類型

上述選項適用于輸入或輸出文件,主要用于說明raw(或headless)文件作為輸入時的格式信息,或格式轉換時指定輸出文件的具體參數。

$ sox ?r 48k ?e float ?b 32 ?c 2 input.raw output.wav

將某個特定的 raw 格式的音頻文件轉換為 wav 格式

$ sox Faded.wav Faded.raw

將音頻文件 Faded.wav 轉為 raw 格式

$ play -r 44800 -b 16 -e signed-integer -c 2 Faded.raw

播放 raw 格式的音頻文件

$ sox Faded.wav -c 1 Faded-mono.wav

將 Faded.wav 文件轉換成單聲道(-c 1)后輸出

三、音頻效果

SoX 工具可以在音頻處理的過程中,對輸入的音頻數據應用眾多的效果。

可以使用如下命令查看所有效果的幫助信息:

$ sox --help-effect all | less

sox: SoX v

Effect usage:

allpass frequency width[h|k|q|o]

band [-n] center [width[h|k|q|o]]

bandpass [-c] frequency width[h|k|q|o]

bandreject frequency width[h|k|q|o]

bass gain [frequency(100) [width[s|h|k|q|o]](0.5s)]

bend [-f frame-rate(25)] [-o over-sample(16)] {start,cents,end}

:

也可以直接查看具體某個音頻效果的使用方法:

$ sox --help-effect echo

sox: SoX v

Effect usage:

echo gain-in gain-out delay decay [ delay decay ... ]

以下是一些簡單的應用場景。

1. 更改聲道數

sox 命令可以更改音頻文件中聲道的數目,如將單聲道音頻轉換成雙聲道:

$ sox foo.wav foostereo.wav channels 2或$ sox foo.wav -c 2 foostereo.wav

但是上述命令并沒有創建一個“真實”的雙聲道音頻,而是將單聲道音頻復制成完全一致的兩個聲道再合并到輸出文件中。

可以通過 sox 命令的 -M 選項將左右兩個聲道的單聲道音頻合并成一個雙聲道文件:

$ sox -M left.wav right.wav stereo.wav

當然,也可以通過對雙聲道文件中兩個聲道的均一化處理,將其輸出為單聲道音頻:

$ sox original.wav mono.wav channels 1或$ sox original.wav -c 1 mono.wav

remix

通過 sox 命令的 remix 效果也可以完成對聲道數據的提取或融合。

提取雙聲道音頻文件中單個聲道的數據并作為單聲道音頻輸出:

$ sox stereo.wav left.wav remix 1(提取左聲道音頻)

$ sox stereo.wav right.wav remix 2(提取右聲道音頻)

融合雙聲道文件中兩個聲道的音頻數據并作為單聲道音頻輸出:

$ sox stereo.wav mono.wav remix 1,2或

$ sox stereo.wav mono.wav remix 1-2

此外,remix還可以將輸入文件中的多個聲道數據分別進行融合。

如使用-M選項將兩個雙聲道音頻合并,再通過remix將合并得到的四個聲道兩兩融合,生成一個只包含兩個聲道的輸出文件。

$ sox -M stereo1.wav stereo2.wav output.wav remix 1,3 2,4

2. 改變音量

sox命令的-v選項可以用來(成倍地)改變音量的大小:

$ sox -v 0.5 foo.wav bar.wav

上述命令將foo.wav音頻放大 0.5 倍音量后輸出至bar.wav文件

可以將音量放大功能與stat效果結合。

以sox foo.wav -n stat -v命令返回的數字作為放大倍數,將最大化foo.wav的音量而不至于出現削波:

$ sox foo.wav -n stat -v 2> vc

$ sox -v `cat vc` foo.wav foo-maxed.wav

1

2

此外,還有一個選項--norm用來歸一化音頻響度。為了最大化音頻的聲音強度,可以在處理輸入音頻時將該選項設置為 -1:

sox --norm=-1

3. 提取文件的某個部分

sox 命令的trim效果可以將輸入音頻的某一段裁剪出來并提取到輸出文件中。

trim接收兩個參數,一個作為裁剪片段的起始位置,另一個作為該片段持續的時間。

可以使用整數+s格式的參數以樣本個數作為計量單位,也可以直接使用((hh:)mm:)ss(.fs)形式的時間參數。當參數為純整數時,單位為秒。

$ sox Input.wav Half1.wav trim 0 30:00截取輸入文件中前 30 分鐘的音頻

$ sox Input.wav Half2.wav trim 30:00 30:00截取輸入文件中從第 30 分鐘開始到第 60 分鐘的音頻

4. 拼接文件

與前面裁剪提取的操作相反,sox 命令還可以實現對兩個或多個音頻文件的拼接。

$ sox Half1.wav Half2.wav Full.wav

將Half1.wav和Half2.wav合并至Full.wav文件。注意合并前的音頻文件需保持一致的類型和采樣率等。

5. 合成音頻

sox 命令可以通過synth效果合成許多標準波形和噪聲類型。

$ sox -n sine.wav synth 1.0 sine 1000.0

合成頻率為 1000 Hz 長度為 1 秒的正弦波,保存至sine.wav文件中。

synth支持合成的聲音類型包括sine、square、triangle、sawtooth、trapetz (trapezoidal)、exp (exponential)、whitenoise、pinknoise 和 brownnoise。

6. 靜音效果

sox 命令可以創建靜音狀態的音頻片段,使用-n選項表示沒有輸入,通過trim效果指定需要靜音的片段。

$ sox -n -r 48000 silence.wav trim 0.0 0.250

在slience.wav文件中創建一段長度為 250ms 采樣率為 48000Hz 的靜音片段。

7. 混合音頻

sox 命令的-m選項可以將兩個音頻文件混合以后生成輸出文件。

$ sox -m sine100.wav sine250.wav sine100-250.wav

將sine100.wav和sine250.wav兩個音頻文件融合以后作為sine100-250.wav文件的音頻數據。

$ sox -m -v0.5 music.mp3 -v2 speech.wav presentation.wav

將背景音樂(music.mp3)音量降低一半后與放大 2 倍音量的人聲數據(speech.wav)融合。

如果不確定融合效果,可以先通過 play 命令使用相同的參數對結果進行“預覽”:

$ play -m -v0.5 music.mp3 -v2 speech.wav

PS:

與前面的-M選項不同,-m選項傾向于對聲道數據的混合,即兩個單聲道文件通過-m混合以后輸出仍是單聲道數據。輸出文件中的單個聲道包含了輸入的兩個聲道的特征。

而-M選項更傾向于對音頻文件的合并,默認不對聲道數據進行混合。所以兩個單聲道文件通過-M合并以后默認輸出雙聲道音頻。輸出文件中的兩個聲道分別對應于輸入的兩個聲道(數據沒有混合)。除非通過-c選項手動指定輸出文件的聲道數量。

8. 改變播放速度

可以通過 stretch 效果改變音頻文件的播放速度,同時不會導致音高的變化。

如以 2x 倍速播放Faded.wav文件:

$ play Faded.wav stretch 0.5

也可以通過speed效果調節播放速度(相應地音高也會發生變化):

$ play Faded.wav speed 2

此外,可以使用pitch效果調節音頻片段的音高,以音分(cents)為單位。

$ play Faded.wav pitch 200

將Faded.wav文件中的音頻提高 200 音分,即提高 2 個半音的音程(每一個半音的音程等于 100 音分)。

總結

以上是生活随笔為你收集整理的sox处理mp3_SoX 音频处理工具使用方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 看91| 成人精品毛片 | 中文字幕无人区二 | 在线观看国产一区 | 国产精品一区久久 | 免费成人av在线 | 调教驯服丰满美艳麻麻在线视频 | 日本色片网站 | 毛片网站免费 | 欧美日韩在线视频播放 | 两个小y头稚嫩紧窄h文 | 亚洲精品久久久乳夜夜欧美 | 欧美激情中文字幕 | 91精品国产一区 | 久久精品综合网 | 免费观看av的网站 | 无码人妻精品一区二区三区99日韩 | 欧美绿帽合集videosex | 日韩精品中文字幕在线 | 欧美成人黄色网 | 国产精选网站 | 97超碰人人模人人人爽人人爱 | 日韩图片一区 | 久久久久成人精品无码 | 一级黄色免费看 | 豆花视频在线播放 | 1000部啪啪未满十八勿入超污 | 91激情捆绑调教喷水 | 粗大的内捧猛烈进出在线视频 | 一区二区蜜桃 | 六月丁香综合网 | 可以看的av网站 | 亚洲区小说区图片区qvod | 精品少妇一区二区三区在线观看 | 空姐吹箫视频大全 | 日本综合久久 | 华人在线视频 | 国产一级片免费在线观看 | 国产探花视频在线观看 | 手机看片福利久久 | 首尔之春在线看 | 日韩一二三四 | 欧美乱妇15p | 国产伦精品一区二区三区免费迷 | 亲嘴扒胸摸屁股免费视频日本网站 | 99国产精品白浆在线观看免费 | 乱色熟女综合一区二区三区 | 欧美性生交xxxxx | 免费高清视频在线观看 | 精品人妻一区二区三区日产乱码 | 欧美精品久久久久久久久 | 毛片基地免费观看 | 激情五月视频 | 久青草免费视频 | 久久22 | 野外做受又硬又粗又大视频√ | 亚洲偷怕 | 日本阿v视频| 久一视频在线观看 | 欧美午夜网站 | 久久久久国产精品 | 97在线视频免费观看 | www.日韩.com | 姐姐你真棒插曲快来救救我电影 | 免费在线小视频 | 亚洲综合色一区 | 超碰狠狠操 | 91精品导航 | 性视频欧美 | 久久香蕉国产 | 欧美日韩一区二区三区四区五区六区 | 成人网址在线观看 | 精品国产乱 | 欧美黄色a视频 | 国产精品成人在线观看 | 97视频播放 | 农村少妇无套内谢粗又长 | 91人人视频 | 青青视频免费 | 午夜激情福利电影 | av看片网站| 黄色免费在线网址 | 毛茸茸毛片 | 国产男女无套免费网站 | 老司机深夜影院 | www.com色 | 日本久久免费 | 姐姐的朋友2在线 | 福利电影一区 | 久久国产视频网站 | 中文字幕黑丝 | 免费www xxx | 51成人精品网站 | 日韩精品在线一区二区 | 欧美日韩亚洲另类 | 久久婷婷五月国产色综合激情 | 麻豆视频二区 | 日本一区二区三区欧美 | 青娱乐国产盛宴 |