2010-01-29 13 views
5

त्वरित प्रश्न।पायगैम ऑडियो प्लेबैक गति

मैं कुछ ऑडियो फ़ाइलों को चलाने के लिए लिनक्स के तहत पायगम चला रहा हूं। मुझे कुछ .wav फाइलें मिली हैं और मुझे उन्हें सही गति से वापस चलाने में समस्याएं आ रही हैं।

import pygame.mixer, sys, time 

#plays too fast 
pygame.mixer.init(44100) 
pygame.mixer.music.load(sys.argv[1]) 
pygame.mixer.music.play() 
time.sleep(5) 
pygame.mixer.quit() 

#plays too slow 
pygame.mixer.init(22100) 
pygame.mixer.music.load(sys.argv[1]) 
pygame.mixer.music.play() 
time.sleep(5) 
pygame.mixer.quit() 

मैं ggogle कोड कुछ सामान की खोज की है, लेकिन हर कोई उसके डिफ़ॉल्ट पैरामीटर के साथ init समारोह बुला ठीक हो रहा है। क्या अन्य लोग इस स्क्रिप्ट को चलाने का प्रयास कर सकते हैं और देख सकते हैं कि उन्हें एक ही व्यवहार मिलता है या नहीं? क्या कोई जानता है कि इसे कैसे गति दें? या प्रत्येक फ़ाइल के लिए गति समायोजित करें?

धन्यवाद।

उत्तर

1

मैंने इसे समझ लिया ... एक तरंग मॉड्यूल http://docs.python.org/library/wave.html है और यह WAV फ़ाइलों के लिए नमूना दर पढ़ सकता है।

2

Audacity जैसे निःशुल्क ऑडियो टूल में अपनी ऑडियो फ़ाइल खोलें। यह आपको आपके मीडिया की नमूना दर बताएगा। यह आपको एक अलग नमूना दर में परिवर्तित करने की अनुमति देगा ताकि आपकी सभी आवाज़ें समान हों।

+0

लेकिन क्या यह एकमात्र तरीका है? –

+0

सफलतापूर्वक नहीं। मुझे यकीन है कि आप पाइथन में इनपुट मीडिया की नमूना दर की गणना करने के लिए कुछ तरीका समझ सकते हैं और फिर मीडिया को उचित रूप से दोहरा सकते हैं। यह आपको अपने उपयोगकर्ताओं द्वारा उचित रूप से आपूर्ति किए गए विदेशी मीडिया को संभालने की अनुमति देगा। हालांकि, pygame को लगातार दर पर प्लेबैक मीडिया होना चाहिए और उस दर को मीडिया की नमूना दर से मेल खाना चाहिए। उस तथ्य के आसपास कोई रास्ता नहीं है। – Pace

2

मेरे पास कुछ एमपी 3 ऑडियो ट्रैक धीमे होकर खेल रहे थे। मैं मिक्सर आवृत्ति एमपी 3 नमूना तो जैसे mutagen का उपयोग कर दर के आधार पर किए जाने की अद्यतन:

import pygame, mutagen.mp3 

song_file = "your_music.mp3" 

mp3 = mutagen.mp3.MP3(song_file) 
pygame.mixer.init(frequency=mp3.info.sample_rate) 

pygame.mixer.music.load(song_file) 
pygame.mixer.music.play() 

और यह समस्या ठीक हो गई।

1

Chris H answer को बेहतर बनाने के लिए। wave लाइब्रेरी का उपयोग करने का उदाहरण यहां दिया गया है।

import wave 
import pygame 

file_path = '/path/to/sound.wav' 
file_wav = wave.open(file_path) 
frequency = file_wav.getframerate() 
pygame.mixer.init(frequency=frequency) 
pygame.mixer.music.load(file_path) 
pygame.mixer.music.play() 

याद रखें कि आप या frequency बदलना चाहते हैं किसी भी अन्य pygame.mixer.init में इस्तेमाल किया पैरामीटर यदि आप pygame.mixer.quit पहले कॉल करना होगा। Pygame documentation

संबंधित मुद्दे