यह ट्विटर छवि एन्कोडिंग चुनौती का ऑडियो संस्करण है ।
एक ऑडियो संपीड़न प्रारूप डिज़ाइन करें जो 140 बाइट्स में कम से कम एक मिनट के संगीत का प्रतिनिधित्व कर सकता है या मुद्रण योग्य UTF-8-एन्कोडेड पाठ से कम हो सकता है।
एक कमांड-लाइन प्रोग्राम लिखकर इसे लागू करें जो निम्नलिखित 3 तर्क लेता है (कार्यक्रम के नाम के बाद):
- तार
encode
याdecode
। - इनपुट फ़ाइल नाम।
- आउटपुट फ़ाइल नाम।
(यदि आपकी पसंदीदा प्रोग्रामिंग भाषा में कमांड-लाइन तर्कों का उपयोग करने की क्षमता का अभाव है, तो आप वैकल्पिक दृष्टिकोण का उपयोग कर सकते हैं, लेकिन आपको अपने उत्तर में स्पष्ट करना होगा।)
encode
आपरेशन अपनी चुनी ऑडियो प्रारूप से अपने संकुचित "ट्वीट" प्रारूप करने के लिए परिवर्तित कर देंगे, और decode
संचालन अपने "ट्वीट" प्रारूप से मूल ऑडियो प्रारूप करने के लिए परिवर्तित कर देंगे। (बेशक, आपको हानिपूर्ण संपीड़न लागू करने की उम्मीद है, इसलिए आउटपुट फ़ाइल को इनपुट के समान नहीं होना चाहिए, बस उसी प्रारूप में।)
अपने उत्तर में शामिल करें:
- आपके कार्यक्रम का स्रोत कोड, पूर्ण में। (यदि यह इस पृष्ठ के लिए बहुत लंबा है, तो आप इसे कहीं और होस्ट कर सकते हैं और इसके लिए एक लिंक पोस्ट कर सकते हैं।)
- यह कैसे काम करता है इसका स्पष्टीकरण।
- मूल ऑडियो फ़ाइल (लिंक) के साथ कम से कम एक उदाहरण, "ट्वीट" पाठ जो इसे संकुचित करता है, और ट्वीट को डिकोड करके प्राप्त ऑडियो फ़ाइल। (उत्तरदाता कॉपीराइट "निष्पक्ष उपयोग" के लिए जिम्मेदार है।)
नियम
- मैं किसी भी समय प्रतियोगिता नियमों में किसी भी खामियों को बंद करने का अधिकार सुरक्षित रखता हूं।
- [संपादित २४ अप्रैल] आपके
encode
फ़ंक्शन के इनपुट के लिए (और आपके फ़ंक्शन का आउटपुटdecode
), आप किसी भी उचित, सामान्य ऑडियो प्रारूप का उपयोग कर सकते हैं, चाहे वह हो:- WAV की तरह असम्पीडित तरंग।
- संपीडित तरंग, जैसे MP3।
- मिडी की तरह "शीट संगीत" शैली।
- आपका संपीड़ित "ट्वीट" प्रारूप वास्तव में इनपुट फ़ाइल में ध्वनियों को एनकोड करना होगा। तो, निम्न प्रकार के आउटपुट की गणना नहीं होती है:
- एक URI या फ़ाइल पथ वह स्थान देता है जहाँ वास्तविक आउटपुट संग्रहीत होता है।
- डेटाबेस तालिका की एक कुंजी जहां वास्तविक आउटपुट को बूँद के रूप में संग्रहीत किया जाता है।
- कुछ भी समान।
- आपका प्रोग्राम जेनेरिक संगीत फ़ाइलों को संपीड़ित करने के लिए डिज़ाइन किया जाना चाहिए , इसलिए ऐसा सामान न करें जो आपके विशिष्ट उदाहरण गीत से बहुत स्पष्ट रूप से बंधा हो। उदाहरण के लिए, यदि आप "ट्विंकल, ट्विंकल, लिटिल स्टार" का प्रदर्शन कर रहे हैं, तो आपकी संपीड़न दिनचर्या को अनुक्रम-डो-सो-ला-ला-सो के लिए एक विशिष्ट प्रतीक को हार्ड-कोड नहीं करना चाहिए।
- आपके कार्यक्रम का आउटपुट वास्तव में ट्विटर के माध्यम से जाने और अनसुना करने में सक्षम होना चाहिए। मेरे पास सटीक वर्णों की सूची नहीं है जो समर्थित हैं, लेकिन अक्षरों, अंकों, प्रतीकों और विराम चिह्न से चिपके रहने की कोशिश करते हैं; और नियंत्रण वर्ण, संयोजन वर्ण, BIDI मार्कर, या उस जैसे अन्य अजीब सामान से बचें।
- आप एक से अधिक प्रविष्टि जमा कर सकते हैं।
मानदंड तय करना
यह एक लोकप्रियता प्रतियोगिता है (यानी, सबसे अधिक शुद्ध जीत हासिल करता है), लेकिन मतदाताओं से निम्नलिखित पर विचार करने का आग्रह किया जाता है:
शुद्धता
- क्या आप संपीड़ित होने के बाद भी गीत को पहचान सकते हैं?
- क्या यह अच्छा लगता है?
- क्या आप अभी भी पहचान सकते हैं कि कौन से उपकरण बजाए जा रहे हैं?
- क्या आप अब भी बोल को पहचान सकते हैं? (यह शायद असंभव है, लेकिन यह प्रभावशाली होगा यदि कोई इसे पूरा करे।)
जटिलता
उदाहरण गीत की पसंद यहां मायने रखती है।
- [24 अप्रैल को जोड़ा गया] यह चुनौती मिडी या इसी तरह के प्रारूपों के साथ आसान होगी। हालांकि, यदि आप इसे तरंग-प्रकार के स्वरूपों के साथ काम करने के लिए अतिरिक्त प्रयास करते हैं, तो यह अतिरिक्त क्रेडिट के योग्य है।
- संरचना क्या है? निश्चित रूप से, आप एक ही आवश्यकता को पूरा कर सकते हैं बस एक ही 4 उपायों को दोहराते हुए एक मनमाना संख्या। लेकिन अधिक जटिल गीत संरचनाएं अधिक बिंदुओं के लायक हैं।
- क्या प्रारूप एक समय में खेले जा रहे बहुत सारे नोटों को संभाल सकता है?
कोड
- इसे जितना संभव हो छोटा और सरल रखें। हालांकि, यह एक कोड गोल्फ नहीं है, इसलिए वर्ण गणना से अधिक पठनीयता मायने रखती है।
- चालाक, जटिल एल्गोरिदम भी ठीक हैं, जब तक कि वे परिणामों की गुणवत्ता में सुधार के द्वारा उचित हैं।