Làm sạch bản ghi âm từ dòng lệnh?


28

Tôi đã sử dụng Audacity để loại bỏ nhiễu khỏi các bản ghi trước đây, tuy nhiên nó có hạn chế sử dụng dòng lệnh. Tôi có ~ 100 video bài giảng ngắn mà tôi sẽ xem trong vài tháng tới và muốn một cách dễ dàng để làm sạch tất cả chúng cùng một lúc hoặc khi cần trước khi xem.

Có một công cụ dòng lệnh hoặc thư viện ngôn ngữ phổ biến tôi có thể sử dụng để làm điều này?

Câu trả lời:


17

Hãy xem sox

Trích dẫn man sox:

SoX - Sound eXchange, the Swiss Army knife of audio manipulation

[...]

SoX is a command-line audio processing  tool,  particularly  suited  to
making  quick,  simple  edits  and to batch processing.  If you need an
interactive, graphical audio editor, use audacity(1).

Vì vậy, nó phải là một sự phù hợp tốt đẹp như là một dòng lệnh đồng hành thay thế cho audaciy!


Về nhiệm vụ thực tế là làm sạch các bản ghi, hãy xem bộ lọc noiseredtương đương với bộ lọc giảm nhiễu Audacity :

man sox | less -p 'noisered \['

           [...]
   noisered [profile-file [amount]]
           Reduce noise in the audio signal by profiling and filtering.
           This effect is moderately effective at  removing  consistent
           background  noise such as hiss or hum.  To use it, first run
           SoX with the noiseprof effect on a  section  of  audio  that
           ideally  would  contain silence but in fact contains noise -
           such sections are typically found at the  beginning  or  the
           end  of  a recording.  noiseprof will write out a noise pro‐
           file to profile-file, or to stdout if no profile-file or  if
           `-' is given.  E.g.
              sox speech.wav -n trim 0 1.5 noiseprof speech.noise-profil
           To  actually remove the noise, run SoX again, this time with
           the noisered effect; noisered will reduce noise according to
           a  noise  profile  (which  was generated by noiseprof), from
           profile-file, or from stdin if no profile-file or if `-'  is
           given.  E.g.
              sox speech.wav cleaned.wav noisered speech.noise-profile 0
           How  much  noise  should be removed is specified by amount-a
           number between 0 and 1 with a default of 0.5.   Higher  num‐
           bers will remove more noise but present a greater likelihood
           of removing wanted components of the audio  signal.   Before
           replacing  an  original  recording with a noise-reduced ver‐
           sion, experiment with different amount values  to  find  the
           optimal one for your audio; use headphones to check that you
           are happy with the results, paying particular  attention  to
           quieter sections of the audio.

           On  most systems, the two stages - profiling and reduction -
           can be combined using a pipe, e.g.
              sox noisy.wav -n trim 0 1 noiseprof | play noisy.wav noise
           [...]

7
Thật không may, tôi thấy mô tả mà sox sử dụng trong trang web rất ồn để đọc - ý định chơi chữ. Có cách nào đơn giản hơn nhiều không, chỉ với một mệnh lệnh duy nhất để tung hứng với tiếng ồn?
shevy

Chắc chắn, không có vấn đề gì - chỉ cần viết một câu đơn giản những gì bạn muốn thay đổi - nhưng đủ chính xác để rõ ràng về mặt kỹ thuật ... Ok, điều đó sẽ không hoạt động như thế này bởi vì bạn cần hiểu tiếng ồn là gì và phần nào của tiếng ồn bạn muốn loại bỏ, mà bạn có thể giảm và điều gì có thể làm giảm chất lượng âm thanh nếu không thì giảm tiếng ồn. Để tung hứng với việc giảm tiếng ồn, bạn cần biết các câu lạc bộ tung hứng của mình - các loại tiếng ồn để tung hứng, và làm thế nào chúng có thể được cân bằng khi chúng va chạm giữa không trung. Sau đó, sox là hộp công cụ và bộ sơ cứu của bạn!
Volker Siegel

12

Câu trả lời được chấp nhận không đưa ra một ví dụ thực tế (xem bình luận đầu tiên cho nó) vì vậy tôi đang cố gắng đưa ra một câu trả lời ở đây. Trên Ubuntu có apt, bạn nên cài đặt soxvà hỗ trợ định dạng âm thanh

sox

Đầu tiên cài đặt soxvà hỗ trợ cho các định dạng (bao gồm mp3):

sudo apt install sox libsox-fmt-*

Sau đó, trước khi bạn chạy lệnh trên tệp / tệp trước tiên bạn cần tạo hồ sơ, tạo mẫu tiếng ồn, đây là phần quan trọng nhất bạn phải chọn thời điểm tốt nhất khi tiếng ồn xảy ra, hãy chắc chắn rằng bạn không có giọng nói (hoặc âm nhạc / tín hiệu bạn cố giữ) trong mẫu này:

ffmpeg -i source.mp3 -ss 00:00:18 -t 00:00:20 noisesample.wav

Bây giờ tạo một hồ sơ từ nguồn đó:

sox noisesample.wav -n noiseprof noise_profile_file

Và cuối cùng chạy giảm nhiễu trên tệp:

sox source.mp3 output.mp3 noisered noise_profile_file 0.31

Trong trường hợp noise_profile_filelà hồ sơ cá nhân và 0.30là giá trị. Giá trị tốt nhất ở đâu đó trong khoảng từ 0,20 đến 0,30, trên 0,3 là rất khó chịu, dưới 0,20 là loại mềm và hoạt động tốt cho âm thanh rất ồn.

Hãy thử và chơi với điều đó và nếu bạn tìm thấy các thủ thuật cài đặt khác và vui lòng nhận xét với các phát hiện và cài đặt điều chỉnh.

làm thế nào để xử lý hàng loạt chúng

Nếu tiếng ồn tương tự, bạn có thể sử dụng cùng một cấu hình cho tất cả các mp3

ls -r -1 *.mp3 | xargs -L1 -I{} sox {}  {}_noise_reduced.mp3  noisered noise_profile_file 0.31

hoặc nếu có cấu trúc thư mục:

tree -fai . | grep -P ".mp3$" | xargs -L1 -I{} sox {}  {}_noise_reduced.mp3  noisered noise_profile_file 0.31

1
nếu nó được nói âm thanh và các kênh truyền hình riêng rẽ trái bên phải là không cần thiết, sau đó bạn có thể thêm remix -vào trộn xuống của tất cả các kênh đầu vào mono
Jake Berger

2
@EduardFlorinescu Câu trả lời của bạn là tại chỗ. Tôi đã có một bản ghi tiếng ồn tĩnh trên nền của mỗi bản ghi âm. Tôi đã đọc câu trả lời của bạn và, sử dụng 2 giây đầu tiên từ tệp âm thanh của tôi để tạo hồ sơ và cuối cùng, đã sử dụng nó để loại bỏ tiếng ồn khỏi bản ghi âm. Cảm ơn rất nhiều vì điều này.
Abrar Hossain
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.