का उपयोग करके समय के साथ सिग्नल के पिच को धीरे-धीरे/धीरे-धीरे बदलें/मैं पुन: नमूना का उपयोग करके एक संपूर्ण सिग्नल को स्थानांतरित कर सकता हूं और मैंने चरण वोकोडर कोडhere का प्रयास किया है।ऑक्टेट/मैटलैब कोड
मैं भी repmat and interpolation की कोशिश की है और मैं fft and interp1
में देखा मैं कैसे संवर्द्धित/धीरे-धीरे समय के साथ एक संकेत के पिच बदल सकते हैं? मैंने Original Signal का उदाहरण शामिल किया है और मैं Processed Signal को ध्वनि की तरह प्राप्त करने की कोशिश कर रहा हूं (मैंने ऑडैसिटी का उपयोग करके संसाधित सिग्नल बनाया और उनके प्रभाव Sliding time scale/pitch shift
का उपयोग करके) लेकिन यह सिग्नल ऑक्टेव 4.0 में बनाना चाहते हैं। यदि आप Processed Signal सुनते हैं तो आप धीरे-धीरे फ़ाइल की पिच सुन सकते हैं लेकिन फ़ाइल Original Signal फ़ाइल के समान (सेकंड) में समान लंबाई है।
मैं सप्टक 4.0 जो
यहाँ मैटलैब
की तरह है उपयोग कर रहा हूँ कोड है जो पूरे सिग्नल की पिच को बदलने और सेकंड में मूल संकेत के एक ही लंबाई रख सकते है, लेकिन मुझे यकीन है कि कैसे करने के लिए नहीं कर रहा हूँ क्या यह धीरे-धीरे समय के साथ एक संकेत की पिच बदल गया है। धन्यवाद अब तक मुझे पाने के लिए rayryeng जाता है।clear, clc
[ya, fs, nbitsraw] = wavread('/tmp/original_signal.wav');
num_per_sec=2.4; %// Define total number of times we see the signal
%// Get total number of integer times we see the signal
num_whole = floor(num_per_sec);
%// Replicate signal
yb=repmat(ya,num_whole,1);
%// Determine how many samples the partial signal consists of
portion = floor((num_per_sec - num_whole)*length(ya));
%// Sample from the original signal and stack this on top of replicated signal
yb = [yb; ya(1:portion)];
%interpolation
xxo=linspace(0,1,length(yb))';
xxi=linspace(0,1,length(ya))';
yi_t=interp1(xxo,yb,xxi,'linear');
wavwrite([yi_t'] ,fs,16,strcat('/tmp/processed_signal.wav')); % export file
चूंकि आप भाषण संकेतों के लिए ऐसा करने में रुचि रखते हैं, तो आप विश्लेषण/पुनर्वितरण उपकरण जैसे [PSOLA] (https://en.wikipedia.org/wiki/PSOLA)।इस तरह के उपकरण को एक और अधिक प्राकृतिक पिच परिवर्तन देना चाहिए। (ध्यान दें कि पीएसओएलए दांत में काफी लंबा है - इन दिनों बेहतर विकल्प हो सकते हैं।) –
ऑडसिटी सबबैंड साइनसॉइडल मॉडलिंग के लिए [sbsms] (https://sourceforge.net/projects/sbsms/) लाइब्रेरी का उपयोग करती है। अगर आप चाहते हैं MATLAB/Octave में सभी को फिर से लिख सकते हैं या आप इसे संकलित कर सकते हैं और इसे MAX/oct – rahnema1