กำลังล้างการบันทึกเสียงจากบรรทัดคำสั่งหรือไม่


28

ฉันเคยใช้ความกล้าในการลบเสียงรบกวนจากการบันทึกมาก่อน แต่มันมีการใช้งานบรรทัดคำสั่งที่ จำกัด มาก ฉันมีวิดีโอบรรยายสั้น ๆ ประมาณ 100 เรื่องที่ฉันจะดูในอีกไม่กี่เดือนข้างหน้าและต้องการวิธีที่ง่ายในการทำความสะอาดทั้งหมดในครั้งเดียวหรือตามที่จำเป็นก่อนที่จะดู

มีเครื่องมือบรรทัดคำสั่งหรือไลบรารีภาษายอดนิยมที่ฉันสามารถใช้ทำสิ่งนี้ได้หรือไม่?

คำตอบ:


17

ลองดูที่ sox

ข้อความ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).

ดังนั้นมันควรจะเป็นแบบที่ดีเป็นทางเลือกบรรทัดคำสั่งสหายเพื่อ audaciy!


เกี่ยวกับงานที่แท้จริงของการทำความสะอาดบันทึกดูที่ตัวกรองnoiseredซึ่งเท่ากับตัวกรองลดเสียงรบกวนความกล้า :

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
น่าเสียดายที่ฉันพบคำอธิบายที่ทีมใช้ใน manpage เสียงดังมากที่จะอ่าน - ปุนตั้งใจ ไม่มีวิธีที่ง่ายกว่านี้เพียงแค่ใช้คำสั่งเดียวเพียงอย่างเดียวเพื่อเล่นปาหี่โดยไม่มีเสียงรบกวน?
shevy

แน่นอนว่าไม่มีปัญหา - เพียงแค่เขียนประโยคง่ายๆสิ่งที่คุณต้องการเปลี่ยน - แต่แม่นยำพอที่จะชัดเจนในทางเทคนิค ... โอเคที่จะไม่ทำงานเช่นนี้เพราะคุณต้องเข้าใจว่าเสียงรบกวนคืออะไรและส่วนใดของ เสียงที่คุณต้องการลบซึ่งคุณอาจลดและสิ่งที่สามารถลดคุณภาพเสียงมิฉะนั้นจะทำการลดเสียงรบกวน ในการเล่นปาหี่ด้วยการลดเสียงรบกวนคุณจำเป็นต้องรู้จักสโมสรเล่นกลของคุณ - ชนิดของเสียงที่จะเล่นปาหี่และวิธีที่พวกเขาสามารถมีความสมดุลเมื่อพวกเขาชนกันกลางอากาศ จากนั้น sox คือกล่องเครื่องมือและชุดปฐมพยาบาลของคุณ!
Volker Siegel

12

คำตอบที่ได้รับการยอมรับไม่ได้ให้ตัวอย่างที่เป็นประโยชน์ (ดูความคิดเห็นแรกจากมัน) ดังนั้นฉันจึงพยายามให้ที่นี่ ใน Ubuntu ด้วยฉลาดคุณควรติดตั้งsoxและสนับสนุนรูปแบบเสียง

sox

ติดตั้งครั้งแรกsoxและรองรับรูปแบบ (รวมถึง mp3):

sudo apt install sox libsox-fmt-*

จากนั้นก่อนที่คุณจะเรียกใช้คำสั่งของคุณในไฟล์ / ไฟล์ก่อนอื่นคุณต้องสร้างโปรไฟล์สร้างเสียงรบกวนนี่เป็นส่วนที่สำคัญที่สุดที่คุณต้องเลือกเวลาที่ดีที่สุดเมื่อเสียงดังเกิดขึ้น มีเสียง (หรือเพลง / สัญญาณที่คุณพยายามเก็บไว้) ในตัวอย่างนี้:

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

ตอนนี้ทำโปรไฟล์จากแหล่งที่มา:

sox noisesample.wav -n noiseprof noise_profile_file

และในที่สุดก็เรียกใช้การลดเสียงรบกวนในไฟล์:

sox source.mp3 output.mp3 noisered noise_profile_file 0.31

noise_profile_fileโปรไฟล์อยู่ที่ไหนและ0.30เป็นค่า ค่าจะไปได้ดีที่สุดระหว่าง 0.20 ถึง 0.30 มากกว่า 0.3 นั้นค่อนข้างก้าวร้าวมากต่ำกว่า 0.20 นั้นนิ่มและทำงานได้ดีสำหรับไฟล์เสียงที่มีเสียงดังมาก

ลองและเล่นกับสิ่งนั้นและหากคุณพบลูกเล่นการตั้งค่าอื่น ๆ และโปรดแสดงความคิดเห็นกับสิ่งที่ค้นพบและการตั้งค่าการปรับแต่ง

วิธีการแบทช์ประมวลผลพวกเขา

หากเสียงรบกวนคล้ายกันคุณสามารถใช้โปรไฟล์เดียวกันสำหรับ mp3 ทั้งหมด

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

หรือถ้ามีโครงสร้างโฟลเดอร์:

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

1
ถ้าหากมันเป็นเสียงพูดและช่องซ้ายขวาที่แยกจากกันไม่จำเป็นแล้วคุณสามารถผนวกremix -การผสมลงของช่องสัญญาณทั้งหมดโมโน
เจคเบอร์เกอร์

2
@EduardFlorinescu คำตอบของคุณอยู่ตรงจุด ฉันมีการบันทึกเสียงคงที่บนพื้นหลังของการบันทึกแต่ละครั้ง ฉันอ่านคำตอบของคุณและใช้ 2 วินาทีแรกจากไฟล์เสียงของฉันเพื่อสร้างโปรไฟล์และในที่สุดก็ใช้เพื่อลบเสียงรบกวนจากการบันทึก ขอบคุณมากสำหรับสิ่งนี้
Abrar Hossain
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.