2009-05-08 14 views
8

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

यदि नहीं, तो मुझे पीसीएम बाइनरी की व्याख्या करनी होगी। जबकि मुझे यकीन है कि मैं पीसीएम चश्मे को काफी आसानी से खोद सकता हूं, और कच्चे प्रारूपों को चलने में काफी आसान है, मैंने वास्तव में पहले पाइथन में बाइनरी डेटा के साथ निपटाया नहीं है। क्या कोई अच्छा संसाधन है जो यह बताता है कि यह कैसे करें? विशेष रूप से ऑडियो से संबंधित सिर्फ icing होगा।

+0

यह अजगर में बहुत आंत होना चाहिए। यदि आपको अपना खुद का रोल करना है तो आपको इसके बारे में ब्लॉग करना चाहिए। –

उत्तर

6

मैं सवाल और जवाब पढ़ सकते हैं और मुझे लगता है कि मैं पूरी तरह से स्पष्ट कुछ कमी रह गई चाहिए, क्योंकि कोई भी निम्नलिखित दो मॉड्यूल का उल्लेख किया:

  • audioop: हेरफेर कच्चे ऑडियो डेटा
  • wave: पढ़ सकते हैं और लिखने WAV फ़ाइलों

शायद मैं एक समानांतर ब्रह्मांड से आते हैं और गुइडो की टाइम मशीन वास्तव में एक अंतरिक्ष समय मशीन :)

है

क्या आपको उदाहरण कोड की आवश्यकता है, पूछने के लिए स्वतंत्र महसूस करें।

पीएस 48kHz नमूना दर मानते हैं, 24/1.001 == 23.976023976 पर एक वीडियो फ्रेम ... fps 2002 ऑडियो नमूने लंबा है, और 25fps पर यह 1920 ऑडियो नमूने लंबा है।

+0

ISTM कि आरटीएफएमिंग एक लंबी खो गई कला है। – tzot

+0

वाह, यह सुनिश्चित नहीं है कि मुझे यह कैसे याद आया, लेकिन मुझे लगता है कि इसे वहां सभी ऑडियो लाइब्रेरी रैपरों के नीचे दफनाया गया है। उम्मीद है कि यह पार मंच है और पर्याप्त सटीक है, लेकिन ऐसा लगता है कि यह है। – Soviut

1

क्या यह वास्तव में महत्वपूर्ण है कि आपका समाधान शुद्ध पायथन हो, या आप कुछ प्लेटफॉर्म पर मूल ऑडियो पुस्तकालयों के साथ काम कर सकते हैं (तो यह प्रभावी ढंग से क्रॉस-प्लेटफ़ॉर्म है)? वहाँ http://wiki.python.org/moin/PythonInMusic

1

पर बाद के कई उदाहरण हैं खुला का एक संयोजन (..., "rb"), struct module, और wav/riff file format (शायद बेहतर वहाँ बाहर संदर्भ) के बारे में कुछ जानकारी की तरह लगता है काम करेगा।

बस उत्सुक, आप कच्चे नमूना डेटा के साथ क्या करने का इरादा रखते हैं?

+0

मुझे टुकड़ों में एक लंबे wav को टुकड़ा करने की जरूरत है जो इन और आउट पॉइंट्स की श्रृंखला से मेल खाती है। यह सटीक होना चाहिए ताकि किसी भी फ्रेम दर पर वीडियो से मिलान किया जा सके।अधिकांश पुस्तकालय केवल एक सेकंड के 1/10 वें सटीक होते हैं, इस बीच हमारे सबसे कम फ्रेमरेट 12 एफपीएस से भी शुरू होते हैं। मैं दूसरी सटीकता के 44,000 वें स्थान पर होगा। – Soviut

5

मैंने सी ++ और जावा में केवल एक पीसीएम रीडर लिखा है, लेकिन प्रारूप स्वयं काफी सरल है। एक सभ्य वर्णन यहां पाया जा सकता है: http://ccrma.stanford.edu/courses/422/projects/WaveFormat/

पिछला कि आपको इसे पढ़ने में सक्षम होना चाहिए (बाइनरी फ़ाइल पढ़ने, http://www.johnny-lin.com/cdat_tips/tips_fileio/bin_array.html) और केवल परिणामस्वरूप सरणी से निपटें। संरेखण सही (https://docs.python.org/reference/expressions.html#shifting-operations) प्राप्त करने के लिए आपको कुछ छोटे स्थानांतरण का उपयोग करने की आवश्यकता हो सकती है लेकिन आप इसे कैसे पढ़ते हैं इसके आधार पर, आपको इसकी आवश्यकता नहीं हो सकती है।

उन सभी ने कहा, मैं अभी भी डेविड के दृष्टिकोण की तरफ झुकता हूं।

0

मैं इस को देख रहा था और मैं इस पाया: http://www.swharden.com/blog/2009-06-19-reading-pcm-audio-with-python/ यह Numpy की आवश्यकता है (और matplotlib अगर आप इसे ग्राफ़ चाहते हैं)

import numpy 
data = numpy.memmap("test.pcm", dtype='h', mode='r') 
print "VALUES:",data 

अधिक जानकारी के लिए चेक बाहर मूल लेखक की साइट।

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