"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > पायथन का उपयोग करके किसी गाने को डाउन-पिच कैसे करें

पायथन का उपयोग करके किसी गाने को डाउन-पिच कैसे करें

2024-10-31 को प्रकाशित
ब्राउज़ करें:401

How to Down-Pitch A Song Using Python

यदि आप कभी किसी गाने की गति को बदले बिना उसकी पिच को बदलना चाहते हैं, तो यह ब्लॉग पोस्ट आपके लिए है। संगीतकारों, डीजे और ऑडियो इंजीनियरों के लिए पिच-शिफ्टिंग एक सामान्य कार्य है। इस ट्यूटोरियल में, हम यह पता लगाएंगे कि पायथन और पायडब लाइब्रेरी का उपयोग करके किसी गाने को कैसे डाउन-पिच किया जाए और इस प्रक्रिया को एक फ़ोल्डर में कई गानों पर स्वचालित रूप से लागू किया जाए।

पिच शिफ्ट क्यों?

संगीत में, पिच-शिफ्टिंग का अर्थ है किसी गाने की पिच को तेज या धीमा किए बिना बदलना (उसे बढ़ाना या कम करना)। यह इसके लिए उपयोगी हो सकता है:

  • एक गाने की कुंजी को दूसरे ट्रैक से मिलाना

  • एक अलग कुंजी पर ट्यून किए गए उपकरणों के लिए गाने ट्रांसपोज़ करना

  • रीमिक्स या मैशअप बनाना

उपकरण जिनकी आपको आवश्यकता होगी

ऑडियो फ़ाइलों में हेरफेर करने के लिए हम पायथन लाइब्रेरी pydub का उपयोग करेंगे। आप इसे पाइप का उपयोग करके इंस्टॉल कर सकते हैं:

pip install pydub

इसके अतिरिक्त, pydub को MP3 जैसी ऑडियो फ़ाइलों को संभालने के लिए ffmpeg की आवश्यकता होती है। आप टर्मिनल के माध्यम से ffmpeg इंस्टॉल कर सकते हैं:

sudo apt install ffmpeg

पिच शिफ्टिंग के लिए चरण-दर-चरण मार्गदर्शिका

अब आइए पायथन स्क्रिप्ट पर ध्यान दें जो एक फ़ोल्डर में कई गानों के लिए पिच-शिफ्टिंग को स्वचालित करता है। स्क्रिप्ट गाने फ़ोल्डर में फ़ाइलों के माध्यम से लूप करती है, उन्हें आधे-चरण (सेमीटोन = -1) द्वारा डाउन-पिच करती है, और नई फ़ाइलों को आउटपुट फ़ोल्डर में सहेजती है।

संहिता

import os
from pydub import AudioSegment

# Function to shift pitch down
def pitch_shift(audio, semitones):
    # Adjust sample rate to shift pitch
    new_sample_rate = int(audio.frame_rate * (2.0 ** (semitones / 12.0)))
    return audio._spawn(audio.raw_data, overrides={'frame_rate': new_sample_rate}).set_frame_rate(audio.frame_rate)

# Input and output folders
input_folder = './songs'
output_folder = './output'

# Ensure the output folder exists
os.makedirs(output_folder, exist_ok=True)

# Loop through all files in the songs folder
for filename in os.listdir(input_folder):
    # Check if the file is an audio file (e.g., mp3 or wav)
    if filename.endswith(".mp3") or filename.endswith(".wav"):
        # Construct the full file path
        input_path = os.path.join(input_folder, filename)
        output_path = os.path.join(output_folder, filename)

        # Load the audio file
        audio = AudioSegment.from_file(input_path)

        # Shift pitch down by a half-step (semitone = -1)
        shifted_audio = pitch_shift(audio, -1)

        # Export the pitch-shifted audio to the output folder
        shifted_audio.export(output_path, format="mp3")
        print(f"Processed and saved: {output_path}")

स्पष्टीकरण

  1. पुस्तकालय आयात करना:
    हम ऑडियो फ़ाइलों में हेरफेर करने के लिए pydub से फ़ाइल निर्देशिकाओं और ऑडियोसेगमेंट के साथ काम करने के लिए ओएस आयात करते हैं।

  2. पिच-शिफ्ट फ़ंक्शन:
    पिच_शिफ्ट फ़ंक्शन ऑडियो की नमूना दर को समायोजित करता है। जब हम नमूना दर बदलते हैं, तो पिच बदल जाती है। इस मामले में, हम सूत्र का उपयोग करके पिच को एक सेमीटोन से नीचे स्थानांतरित करने के लिए नई नमूना दर की गणना करते हैं:

    new_sample_rate = int(audio.frame_rate * (2.0 ** (सेमीटोन / 12.0)))

  3. इनपुट और आउटपुट फ़ोल्डर:
    हम उन फ़ोल्डरों को परिभाषित करते हैं जहां हम ऑडियो फ़ाइलें पढ़ेंगे और पिच-शिफ्ट किए गए संस्करणों को सहेजेंगे। यदि आउटपुट फ़ोल्डर मौजूद नहीं है, तो इसे बनाया जाएगा।

  4. गाने के माध्यम से लूप करें:
    os.listdir() का उपयोग करके, हम गाने फ़ोल्डर में प्रत्येक फ़ाइल को लूप करते हैं। स्क्रिप्ट यह जाँचती है कि फ़ाइल संसाधित करने से पहले एक ऑडियो फ़ाइल (.mp3 या .wav) है या नहीं। प्रत्येक फ़ाइल के लिए:

    • यह ऑडियो लोड करता है।
    • पिच_शिफ्ट फ़ंक्शन लागू किया जाता है, जिससे पिच को आधा कदम कम किया जाता है।
    • पिच-शिफ्ट किया गया ऑडियो आउटपुट फ़ोल्डर में निर्यात किया जाता है।
  5. निर्यात और प्रतिक्रिया:
    एक बार प्रसंस्करण पूरा हो जाने के बाद, पिच-शिफ्ट किया गया गाना आउटपुट फ़ोल्डर में सहेजा जाता है, और एक पुष्टिकरण संदेश मुद्रित होता है।

स्क्रिप्ट चलाना

सुनिश्चित करें कि आपकी ऑडियो फ़ाइलें गाने फ़ोल्डर में हैं और फिर स्क्रिप्ट चलाएँ:

python -m pitch_down.py

पिच-शिफ्ट की गई फ़ाइलें आउटपुट फ़ोल्डर में सहेजी जाएंगी।

अनुकूलन

आप इस स्क्रिप्ट को आसानी से संशोधित कर सकते हैं:

  • एक सकारात्मक मान पास करके ऑडियो को पिच करें (उदाहरण के लिए, आधा कदम ऊपर के लिए पिच_शिफ्ट(ऑडियो, 1)।

  • सशर्त जांच में .ogg या .flac जैसे अन्य एक्सटेंशन जोड़कर विभिन्न फ़ाइल स्वरूपों को संसाधित करें।

  • सेमीटोन तर्क को समायोजित करके सेमीटोन की एक अलग संख्या द्वारा बदलाव।

निष्कर्ष

यह स्क्रिप्ट पायथन का उपयोग करके कई ऑडियो फ़ाइलों को पिच-शिफ्ट करने का एक सरल लेकिन शक्तिशाली तरीका है। pydub और ffmpeg के साथ, आप बड़ी मात्रा में ऑडियो फ़ाइलों में हेरफेर कर सकते हैं, जिससे संगीतकारों, निर्माताओं या ऑडियो के साथ काम करने वाले किसी भी व्यक्ति के लिए पिच सुधार या ऑडियो तैयारी जैसे कार्य आसान हो जाते हैं।

इस स्क्रिप्ट के साथ बेझिझक प्रयोग करें और देखें कि आप इसे अपनी आवश्यकताओं के अनुसार कैसे अनुकूलित कर सकते हैं। हैप्पी कोडिंग!

विज्ञप्ति वक्तव्य इस लेख को इस पर पुन: प्रस्तुत किया गया है: https://dev.to/highcenburg/how-to-down-pitch-a-song-song-using-python-1opc?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3