एक Vocoder प्रोग्रामिंग


11

मैं "सॉंगिफाई" जैसे अपने स्वयं के वोडर सिंथेसाइज़र को प्रोग्राम करना चाहता हूं, लेकिन मुझे वोकडर एल्गोरिथ्म का एक सरल नहीं मिल रहा है। हो सकता है कि आप यह बता सकें कि वोकडर किस तरह काम करता है, इसकी जानकारी के लिए आप बता सकते हैं।


3
DAFX उडो Zölzer एट अल द्वारा कुछ MATLAB कोड के साथ एक सरल चरण vocoder है।
फोनन

1
Melodify SDK की जांच करें , यह वही काम करता है, और डेमो ट्रायल उपलब्ध है।
डेनियल नोवल

जवाबों:


18

मुझे डर है कि यहां सभी उत्तर प्रश्न के लिए अप्रासंगिक हैं। संगीत उत्पादन की दुनिया में एक वोकोडर को क्या कहा जाता है, सिग्नल प्रोसेसिंग में उपयोग किए जाने वाले चरण के वोकोडर के साथ बहुत कम है । मामलों को बदतर बनाने के लिए मूल पोस्ट द्वारा संदर्भित Songify ऐप वोकडर का उदाहरण नहीं है। हमें इसे सुलझा लेने दो!

1. चरण स्वरोदक

चरण vocoder अन्य उत्तर द्वारा संदर्भित, सिग्नल का एक समय आवृत्ति प्रतिनिधित्व कंप्यूटिंग द्वारा एक सिग्नल प्रोसेसिंग तकनीक है कि संकेतों (समय-खींच, पिच बदलने) के समय / पिच संशोधन प्रदर्शन करने के लिए इस्तेमाल किया जा सकता है (अल्पावधि फूरियर रूपांतरण , या STFT) और फिर सिग्नल फ्रेम को सम्मिलित करना / निकालना और फिर चरण की जानकारी के सुसंगतता को बनाए रखना। आवाज से इसका संबंध केवल ऐतिहासिक है, और इसका उपयोग वर्तमान में निचले-अंत ऑडियो हार्डवेयर / सॉफ्टवेयर में पिच-शिफ्टिंग और टाइम-स्ट्रेचिंग के लिए किया जाता है। रबरबैंड एक ओपन-सोर्स सी ++ समय / पिच परिवर्तन लाइब्रेरी का एक उदाहरण है जो एक चरण-वोकोडर पर आधारित है।

2. वोकरदार

जब संगीत उत्पादन के क्षेत्र के लोग एक वोकरोडर का संदर्भ देते हैं, तो वे एक संकेत के स्पेक्ट्रल लिफाफे (आमतौर पर आवाज, जिसे मॉड्यूलेटर कहा जाता है) को निकालते हैं, और एक अन्य सिग्नल (आमतौर पर एक समृद्ध संश्लेषक बनावट) को वाहक कहते हैं। एक फिल्टर के साथ जिसका प्रतिसाद निकाला गया वर्णक्रमीय लिफाफा है। परिणामी ध्वनि के उदाहरण के लिए, Kraftwerk ट्रांस यूरोप एक्सप्रेस में 0:23 या कुछ पहले सेकंड से एलन पार्सन्स प्रोजेक्ट द रेवेन को सुनें । परिणामी प्रभाव एक मुखर या टिम्बर है, जो वाहक संकेत द्वारा बजाए जाने वाले राग या राग के लिए लागू होता है, यह महसूस करते हुए कि एक सिंथेसाइज़र के माध्यम से एक आवाज बोली जाती है।

वोकटर मूल रूप से एक एनालॉग डिवाइस है, इसे उच्च क्यू के साथ एक दर्जन या अधिक बैंडपास फिल्टर के दो बैंकों के साथ लागू किया गया था। मॉड्यूलेटर सिग्नल को पहले फिल्टर बैंक के माध्यम से भेजा जाता है, और सभी सब-बैंड सिग्नल के आयाम को एक सिग्नल के साथ ट्रैक किया जाता है। लिफाफा अनुयायियों की सरणी। समानांतर में, वाहक संकेत दूसरे फिल्टर बैंक के माध्यम से भेजा जाता है। प्रत्येक उप-बैंड को प्रवर्धित (VCA के साथ) लिफाफा अनुयायियों द्वारा दिए गए लाभ के साथ किया जाता है। यदि आप एनालॉग पढ़ते हैं, तो आप यहाँ पर ज्यूरन हैबल के रहने वाले वोडर से एक वोडर चैनल की योजना पर नज़र डाल सकते हैं - सबसे ऊपर न्यूनाधिक सिग्नल फिल्टर, नीचे वाहक फिल्टर और वीसीए। वोकोडर्स के सॉफ्टवेयर कार्यान्वयन इसके करीब रहते हैं, बस इसलिए क्योंकि संगीत निर्माता वोकॉडर्स को क्लासिक एनालॉग डिवाइसों की तरह ध्वनि की उम्मीद करते हैं! लेकिन अगर आप "विंटेज" उपकरणों के प्रति निष्ठा नहीं चाहते हैं, और 40 बाइकेड्स की तुलना में कुछ सस्ता चाहते हैं, तो उसी परिणाम को प्राप्त करने का एक और तरीका एक ऑल-पोल फिल्टर (ऑर्डर 8 से 20 तक) का अनुमान है कि आप कितना करीबी चाहते हैं। न्यूनाधिक संकेत (एआर-मॉडलिंग) से मूल आवाज़ में जाने के लिए; और फिर इस फ़िल्टर को वाहक पर लागू करें। यहाँ विशिष्ट समस्या यह है कि आपको अपने फ़िल्टर गुणांक को प्रत्येक 20ms फ्रेम या तो अपडेट करना होगा; इसलिए आपको ऑल-पोल फिल्टर के प्रतिनिधित्व की आवश्यकता है जो अच्छी तरह से अचानक गुणांक अपडेट को संभालता है।

3. ऑटो-ट्यून और पिच-रीमैपिंग

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

यहां काम करने वाले एल्गोरिदम पारंपरिक पिच-शिफ्टिंग टाइम-स्ट्रेचिंग से बहुत अलग हैं, क्योंकि ध्वनि संकेत मोनोफोनिक है और स्रोत-फिल्टर मॉडल को अच्छी तरह से फिट करता है। टाइम-डोमेन पिच-सिंक्रोनस-ओवरलैप-एड (टीडी-पीएसओएल) जैसे दृष्टिकोण कम्प्यूटेशनल और गुणवत्ता के मामले में, अधिक कुशल हैं, सामान्य रूप से जेनेरिक टाइम-स्ट्रेच एल्गोरिदम की तुलना में आवाज की पिच को पारदर्शी रूप से बदलने के लिए (आमतौर पर चरण-गायक के साथ किया जाता है) )। उदाहरण के लिए भाषण संश्लेषण में इनका उपयोग संश्लेषित वाक्य के अभियोग को बदलने के लिए किया जाता है - वास्तव में गीत के विपरीत नहीं! ऑटो-ट्यून भी ऐसे टाइम-डोमेन तरीकों पर आधारित होता है (इनपुट तरंग के पूर्ण चक्रों का पता लगाना और उन्हें फिर से खोलना)।

PSOLA चित्रण



2

मैथवर्क्स में छद्म कोड की एक लिंक यहाँ दी गई है।

यहाँ एक लिंक डीएसपी आयामों में बीजगणित का वर्णन है।

एक FFT बिन में एक केंद्र आवृत्ति होती है। उस सटीक बिन आवृत्ति पर किसी भी साइनसॉइड में 2 संदर्भ बिंदुओं के संदर्भ के साथ एक ही चरण होगा, 1 FFT फ्रेम को अलग करता है, या एक डेल्टा चरण होता है, जिसे 2 संदर्भ बिंदुओं के लिए गणना की जा सकती है या 2 FFT फ्रेम कुछ मनमानी दूरी के अलावा (शायद अतिव्यापी) हो सकते हैं । एक चरण वोकोडर का मूल विचार प्रत्येक FFT बिन आवृत्ति को पास की एक आवृत्ति से थोड़ा समायोजित करना है ताकि उस आवृत्ति पर एक साइनसॉइड एफएफटी बिन केंद्र आवृत्तियों न होने पर 2 ऑफसेट एफएफटी फ्रेम के संदर्भ बिंदुओं पर पता लगाए गए चरण से मेल खाए।

इन समायोजित आवृत्तियों का उपयोग तब तरंग के दानेदार पुनरुत्थान के लिए किया जा सकता है, जो कि पुनर्रचित तख्ते पर अधिक निरंतरता प्रदर्शित करता है, भले ही वर्णक्रमीयता का मूल अनुक्रम आवृत्ति या समय डोमेन में स्केल किया गया हो। इन ऑफसेट आवृत्तियों का उपयोग आवृत्ति अनुमान के लिए, या पिच आकलन विधि के भाग के रूप में भी किया जा सकता है। पिच के आकलन के साथ-साथ ध्वनि पुनरुत्थान के साथ, एक पिच पर एक ध्वनि लेने में सक्षम हो सकता है और एक पुनरुत्थान को किसी ऐसी चीज से धक्का दे सकता है जो किसी अन्य पिच को छोड़कर लगभग एक जैसी लगती है।


2

निम्नलिखित लेख में एक छोटे समय के फूरियर ट्रांसफॉर्म (STFT) आधारित फेज़ वोडर का वर्णन किया गया है, साथ ही ऑडियो सिग्नल के समय और पिच संशोधनों से निपटने के लिए एक पिच सिंक्रोनस ओवरलैप-ऐड (PSOLA) तकनीक है:

Moulines, E. & Laroche, J.
" भाषण के पिच-स्केल और टाइम-स्केल संशोधन के लिए गैर-पैरामीट्रिक तकनीक ",
स्पीच कम्युनिकेशन, 1995.
(कुछ पीडीएफ संस्करण Google विद्वान से लिंक में उपलब्ध हैं )

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.