GNU/Linux >> Belajar Linux >  >> Linux

15 Contoh Luar Biasa untuk Memanipulasi File Audio Menggunakan Sound eXchange (SoX)


Foto milik sean dreilinger


Artikel ini adalah bagian dari seri Software for Geeks yang sedang berjalan. SoX singkatan dari Jadi dan eX mengubah. SoX adalah alat utilitas audio baris perintah lintas platform yang berfungsi di Linux, Windows, dan MacOS. Ini sangat membantu dalam area berikut saat menangani file audio dan musik.

  • Konverter File Audio
  • Mengedit file audio
  • Mengubah atribut audio
  • Menambahkan efek audio
  • Ditambah banyak fitur manipulasi suara tingkat lanjut


Secara umum, data audio digambarkan dengan empat karakteristik berikut:

  1. Laju – Laju sampel dalam sampel per detik. Misalnya, 44100/8000
  2. Ukuran data – Ketepatan penyimpanan data.  Misalnya, 8/16 bit
  3. Pengkodean data – Pengkodean apa yang digunakan tipe data. Misalnya, u-law,a-law
  4. Saluran – Berapa banyak saluran yang terdapat dalam data audio. Misalnya, saluran Stereo 2

SoX mendukung lebih dari 20 format file audio. Untuk mendapatkan daftar semua format yang didukung, jalankan sox -h dari baris perintah. Salah satu manfaat utama alat audio/musik baris perintah adalah mudah digunakan dalam skrip untuk melakukan tugas yang lebih kompleks dalam mode batch.

Semua 15 contoh yang disebutkan di bawah ini dapat digunakan untuk memanipulasi file Audio di Unix, Windows dan MacOS. Pastikan untuk mengunduh utilitas SoX yang sesuai untuk platform Anda dari halaman unduhan SoX – Sound eXchange.

1. Gabungkan Beberapa File Audio menjadi Satu File

Dengan flag -m, sox menambahkan dua file input bersama-sama untuk menghasilkan outputnya. Contoh di bawah menambahkan first_part.wav dan second_part.wav meninggalkan hasilnya di whole_part.wav. Anda juga dapat menggunakan perintah soxmix untuk tujuan ini.

$ sox -m first_part.wav second_part.wav whole_part.wav

(or)

$ soxmix first_part.wav second_part.wav whole_part.wav

2. Ekstrak Bagian dari File Audio

Trim dapat memotong audio yang tidak diinginkan dari file audio.

Syntax : sox old.wav new.wav trim [SECOND TO START] [SECONDS DURATION].
  • SECOND TO START – Titik awal dalam file suara.
  • DURASI DETIK – Durasi file suara yang akan dihapus.

Perintah di bawah ini akan mengekstrak 10 detik pertama dari input.wav dan menyimpannya di output.wav

$ sox input.wav output.wav trim 0 10

3. Tambah dan Kurangi Volume Menggunakan Opsi -v

Opsi -v digunakan untuk mengubah (menambah atau mengurangi ) volume.

Meningkatkan Volume

$ sox -v 2.0 foo.wav bar.wav

Turunkan Volume

Jika kita perlu menurunkan volume pada beberapa file, kita dapat menurunkannya dengan menggunakan angka negatif. Angka Negatif yang lebih rendah akan menjadi lebih lunak. Pada contoh berikut, perintah pertama (-0,5) akan lebih keras daripada perintah kedua (-0,1)

$ sox -v -0.5 srcfile.wav test05.wav

$ sox -v -0.1 srcfile.wav test01.wav

4. Dapatkan Informasi File Audio

Opsi stat dapat memberikan banyak informasi statistik tentang file audio yang diberikan. Bendera -e memberi tahu sox untuk tidak menghasilkan keluaran apa pun selain informasi statistik.

$ sox foo.wav -e stat
Samples read: 3528000
Length (seconds): 40.000000
Scaled by: 2147483647.0
Maximum amplitude: 0.999969
Minimum amplitude: -1.000000
Midline amplitude: -0.000015
Mean norm: 0.217511
Mean amplitude: 0.003408
RMS amplitude: 0.283895
Maximum delta: 1.478455
Minimum delta: 0.000000
Mean delta: 0.115616
RMS delta: 0.161088
Rough frequency: 3982
Volume adjustment: 1.000

5. Putar Lagu Audio

Sox menyediakan opsi untuk memutar dan merekam file suara. Contoh ini menjelaskan cara memutar file audio di Unix, Linux. Memutar file suara dilakukan dengan menyalin file ke file khusus perangkat /dev/dsp. Perintah berikut memainkan file music.wav:Option -t menentukan jenis file /dev/dsp.

$ sox music.wav -t ossdsp /dev/dsp

Anda juga dapat menggunakan perintah play untuk memutar file audio seperti yang ditunjukkan di bawah ini.

Syntax :play options Filename audio_effects

$ play -r 8000 -w music.wav

6. Putar Lagu Audio Mundur

Gunakan efek 'mundur' untuk membalikkan suara dalam file suara. Ini akan membalikkan file dan menyimpan hasilnya di output.wav

$ sox input.wav output.wav reverse

Anda juga dapat menggunakan perintah putar untuk mendengarkan lagu secara terbalik tanpa mengubah file sumber seperti yang ditunjukkan di bawah ini.

$ play test.wav reverse

7. Rekam File Suara

Perintah 'play' dan 'rec' adalah perintah pendamping untuk sox . /dev/dsp adalah perangkat pengambilan sampel digital dan perekaman digital. Membaca perangkat mengaktifkan konverter A/D untuk perekaman dan analisis suara. File /dev/dsp berfungsi untuk memutar dan merekam sampel suara.

$ sox -t ossdsp /dev/dsp test.wav

Anda juga dapat menggunakan perintah rec untuk merekam suara. Jika SoX dipanggil sebagai 'rec', perangkat suara default digunakan sebagai sumber input.

$ rec -r 8000 -c 1 record_voice.wav

8. Mengubah Kecepatan Sampling File Suara

Untuk mengubah laju pengambilan sampel file suara, gunakan opsi -r diikuti dengan laju sampel yang akan digunakan, dalam Hertz. Gunakan contoh berikut, untuk mengubah laju pengambilan sampel file 'old.wav' menjadi 16000 Hz, dan tuliskan output ke 'new.wav'

$ sox old.wav -r 16000 new.wav

9. Mengubah Ukuran Pengambilan Sampel File Suara

Jika kita meningkatkan ukuran sampel, kita akan mendapatkan kualitas yang lebih baik. Ukuran Sampel untuk audio paling sering dinyatakan sebagai 8 bit atau 16 bit. Audio 8bit lebih sering digunakan untuk merekam suara.

  • -b Contoh ukuran data dalam byte
  • -w Contoh ukuran data dalam kata
  • -l Contoh ukuran data dalam kata-kata yang panjang
  • -d Contoh ukuran data dalam kata-kata panjang ganda

Contoh berikut akan mengonversi file audio 8-bit menjadi file audio 16-bit.

$ sox -b input.wav -w output.wav

10. Mengubah Jumlah Saluran

Contoh berikut mengonversi file audio mono menjadi stereo . Gunakan Opsi -c untuk menentukan jumlah saluran .

$ sox mono.wav -c 2 stereo.wav

Ada beberapa metode untuk mengonversi file suara stereo ke suara mono . yaitu untuk mendapatkan satu saluran dari file stereo.

Memilih Saluran Tertentu

Ini dilakukan dengan menggunakan efek rata-rata dengan opsi yang menunjukkan saluran apa yang akan digunakan. Pilihannya adalah -l untuk kiri, -r untuk kanan, -f untuk depan, dan -b untuk belakang. Contoh berikut akan mengekstrak saluran kiri

$ sox stereo.wav -c 1 mono.wav avg -l

Rata-rata Saluran

$ sox stereo.wav -c 1 mono.wav avg

11. Konverter Audio – Konversi Format File Musik

Sox berguna untuk mengonversi satu format audio ke format audio lainnya. yaitu dari satu pengkodean (ALAW, MP3) ke yang lain. Sox dapat mengenali format input dan output yang diinginkan dengan mengurai ekstensi nama file . Ini akan mengambil infile.ulaw dan membuat file yang dikodekan GSM bernama outfile.gsm. Anda juga dapat menggunakan sox untuk mengonversi wav ke mp3 .

$ sox infile.ulaw outfile.gsm

Jika file tersebut tidak memiliki ekstensi namanya , menggunakan opsi '-t' kita dapat mengekspresikan niat kita. Opsi -t  digunakan untuk menentukan jenis penyandian .

$ sox -t ulaw infile -t gsm outfile

12. Menghasilkan Berbagai Jenis Suara

Menggunakan efek synth kita dapat menghasilkan sejumlah bentuk gelombang standar dan jenis kebisingan. Meskipun efek ini digunakan untuk menghasilkan audio, file input tetap harus diberikan, opsi '-n' digunakan untuk menentukan file input sebagai file null .

$ sox -n synth len type freq
  • len – panjang audio yang akan disintesis. Format untuk menentukan panjang waktu adalah jj:mm:ss.frac
  • ketik adalah salah satu dari sinus, persegi, segitiga, gigi gergaji, trapesium, exp, [putih]noise, pinknoise, brown-
    noise. Defaultnya adalah sinus
  • f permintaan – frekuensi di awal/akhir sintesis dalam Hz

Contoh berikut menghasilkan file audio 3 detik 8000 kHz yang berisi gelombang sinus yang disapu dari 300 hingga 3300 Hz

$ sox -r 8000 -n output.au synth 3 sine 300-3300

13. Mempercepat Suara dalam File Audio

Untuk mempercepat atau memperlambat suara file, gunakan kecepatan untuk mengubah nada dan durasi file. Ini meningkatkan kecepatan dan mengurangi waktu. Faktor default adalah 1.0 yang tidak membuat perubahan pada audio. 2.0 menggandakan kecepatan, sehingga panjang waktu terpotong setengah dan pitch satu interval lebih tinggi.

Syntax: sox input.wav output.wav speed factor

$ sox input.wav output.wav speed 2.0

14. Beberapa Perubahan pada File Audio dalam Satu Perintah

Secara default, SoX mencoba menulis data audio menggunakan tipe data, laju sampel, dan jumlah saluran yang sama sesuai data input. Jika pengguna ingin file output menjadi format yang berbeda maka pengguna harus menentukan opsi format. Jika format file output tidak mendukung tipe data, laju sampel, atau jumlah saluran yang sama dengan format file input yang diberikan, SoX akan secara otomatis memilih nilai terdekat yang didukungnya.

Mengubah wav menjadi mentah. Contoh berikut mengkonversi laju pengambilan sampel, ukuran pengambilan sampel, saluran dalam satu baris perintah.

$ sox -r 8000 -w -c 1 -t wav source -r 16000 -b -c 2 -t raw destination

15. Konversi File Audio Mentah ke File Musik MP3

Tidak ada cara untuk secara langsung mengonversi file mentah ke mp3 karena mp3 akan memerlukan informasi kompresi dari file mentah. Pertama kita perlu mengonversi mentah ke wav. Dan kemudian mengkonversi wav ke mp3. Pada contoh di bawah ini, opsi -h menunjukkan kualitas tinggi.

Konversi Format Mentah ke Format Wav:

$ sox -w -c 2 -r 8000 audio1.raw audio1.wav

Konversi Format Wav ke Format MP3:

$ lame -h audio1.wav audio1.mp3


Artikel ini ditulis oleh SelvaGaneshan. S Dia bekerja di bk Systems (p) Ltd, dan tertarik untuk berkontribusi pada open source. The Geek Stuff menyambut tips dan artikel tamu Anda


Linux
  1. Bagaimana Menganalisis Segmen File Audio Dengan Sox?

  2. 10 Contoh Perintah Cat untuk Mengelola File di Linux / UNIX

  3. Cara membuat file sparse di Linux menggunakan perintah 'dd'

  1. Bagaimana cara menggabungkan dua file menggunakan AWK?

  2. Menggabungkan dua file secara manual menggunakan diff

  3. Menggunakan scp untuk mentransfer file .txt daftar file

  1. Konversi file audio dengan perintah Linux serbaguna ini

  2. Menggunakan perintah find Linux – Penggunaan dengan contoh

  3. Menggunakan Logrotate di linux Untuk Mengelola File Log (dengan contoh)