मैं कुछ ऑडियो प्रोसेसिंग कार्यों को करने के लिए खुद को sox से परिचित करने की कोशिश कर रहा हूं । अंत में, मैं अपनी सभी WAV फ़ाइलों को लेना चाहता हूं और सिर्फ एक चैनल को निकालना चाहता हूं, और उन्हें सहेजना, आदर्श रूप से संशोधित नाम (जैसे इनपुट 55_55.wav left_55_55.wav बन जाएगा)। ठीक है, अब, हालांकि मैं सिर्फ कुछ बुनियादी सामान की कोशिश कर रहा हूं और समस्याओं का सामना कर रहा हूं।
उदाहरण के लिए, केवल एक फ़ाइल की अवधि को देखना ठीक काम करता है:
sox --i -D 55_55.wav
10.840000
लेकिन निर्देशिका में सभी। Wav फ़ाइलों पर कमांड चलाने की कोशिश नहीं की जाती है:
sox --i -D *.wav
sox FAIL formats: can't open input file '*.wav': Invalid argument
यहाँ क्या गलत हो रहा है?
मैंने कई बदलावों की कोशिश की (जैसे ./*.wavरिश्तेदार स्थान बदलना *.wav) लेकिन इसे हल नहीं कर पाया। मैं अपने लक्ष्य को पूरा करने के लिए हर .wav फ़ाइल के लिए कुछ करने का तरीका जानने की उम्मीद कर रहा हूं, और ऐसा लगता है *.wavकि इनपुट का उपयोग करना सही दृष्टिकोण हो सकता है, लेकिन यह इतनी अच्छी तरह से काम नहीं कर रहा है। कोई विचार?
मैंने सोचा था कि निम्नलिखित झूठ की तरह कुछ काम करेगा कि हर फ़ाइल से एक चैनल निकाला जाए और उस एक चैनल को संशोधित नाम के साथ बचाया जाए, लेकिन ऐसा लगता है कि मैं थोड़ा बहुत आशावादी था:
sox *.wav -c 1 left*.wav remix 1 0
sox FAIL formats: can't open output file `left*.wav`: Invalid argument
for wavfile in *.wav; do sox "$wavfile" "left_$wavfile" remix 1; done।
lsउन सभी फ़ाइलों को लौटाता है जिनकी मुझे उम्मीद है, मैं व्यक्तिगत फ़ाइलों पर कमांड का उपयोग कर सकता हूं, और इससे पहले पाठ >सही निर्देशिका है।
*.wavइसका विस्तार नहीं हो रहा है, आप इसे किस खोल में चला रहे हैं? पाश को बैश शेल में चलाने का प्रयास करें।
cmd.exeलूप के लिए भी समर्थन करता है, उदाहरण के लिए इस वेबसाइट को देखें । कुछ इस तरह काम करना चाहिए for %wavfile in (*.wav) do sox %wavfile left_%wavfile remix 1:।
sox --i -D *.wavयहाँ काम करता है, क्या आप सही निर्देशिका में हैं? क्या गूंजता है * .वव कहते हैं?