আমি আর বা মতলবতে পরামর্শ গ্রহণ করতে পেরে খুশি, তবে আমি নীচে যে কোডটি উপস্থাপন করছি তা কেবলমাত্র আর-র।
নীচে সংযুক্ত অডিও ফাইলটি দু'জনের মধ্যে কথোপকথনের একটি সংক্ষিপ্ত অংশ। আমার লক্ষ্যটি তাদের বক্তৃতাটিকে বিকৃত করা যাতে সংবেদনশীল বিষয়বস্তুটি অচেনা হয়ে যায়। অসুবিধাটি হ'ল আমার এই বিকৃতিটির জন্য কিছু প্যারাম্যাট্রিক স্থান প্রয়োজন যা 1 থেকে 5 পর্যন্ত বলতে দেয় যেখানে 1 হল 'অত্যন্ত স্বীকৃত আবেগ' এবং 5 হ'ল 'স্বীকৃত আবেগ'। আর এর মাধ্যমে এটি অর্জনে আমি তিনটি উপায় ব্যবহার করতে পারি বলে ভেবেছিলাম।
প্রথম পদ্ধতির শব্দটি শোনার মধ্য দিয়ে সামগ্রিক স্বজ্ঞাততা হ্রাস করা হয়েছিল। এই সমাধানটি নীচে উপস্থাপন করা হয়েছে (তার পরামর্শগুলির জন্য @ কার্ল-উইথফটকে ধন্যবাদ) এটি বক্তৃতাটির বোধগম্যতা এবং সংবেদনশীল বিষয়বস্তু উভয়ই হ্রাস করবে, তবে এটি অত্যন্ত 'নোংরা' পদ্ধতির - প্যারাম্যাট্রিক স্থান পাওয়ার পক্ষে এটি সঠিক করা শক্ত, কারণ আপনি কেবলমাত্র যে দিকটি নিয়ন্ত্রণ করতে পারবেন সেখানে শব্দের প্রশস্ততা (ভলিউম) রয়েছে।
require(seewave)
require(tuneR)
require(signal)
h <- readWave("happy.wav")
h <- cutw(h.norm,f=44100,from=0,to=2)#cut down to 2 sec
n <- noisew(d=2,f=44100)#create 2-second white noise
h.n <- h + n #combine audio wave with noise
oscillo(h.n,f=44100)#visualize wave with noise(black)
par(new=T)
oscillo(h,f=44100,colwave=2)#visualize original wave(red)
দ্বিতীয় পন্থাটি হ'ল একরকম শব্দের সামঞ্জস্য করা, কেবলমাত্র নির্দিষ্ট ফ্রিকোয়েন্সি ব্যান্ডগুলিতে বক্তৃতাটিকে বিকৃত করা। আমি ভেবেছিলাম আমি আসল অডিও তরঙ্গ থেকে প্রশস্ততা খামটি বের করে, এই খামটি থেকে শব্দ উত্পন্ন করতে এবং তারপরে শব্দের অডিও তরঙ্গে পুনরায় প্রয়োগ করে এটি করতে পারি। নীচের কোডটি দেখায় যে এটি কীভাবে করা যায়। এটি শব্দের চেয়ে পৃথক কিছু করে, শব্দটিকে ক্র্যাকিং করে, তবে এটি একই বিন্দুতে ফিরে যায় - আমি এখানে কেবলমাত্র শব্দের প্রশস্ততা পরিবর্তন করতে সক্ষম।
n.env <- setenv(n, h,f=44100)#set envelope of noise 'n'
h.n.env <- h + n.env #combine audio wave with 'envelope noise'
par(mfrow=c(1,2))
spectro(h,f=44100,flim=c(0,10),scale=F)#spectrogram of normal wave (left)
spectro(h.n.env,f=44100,flim=c(0,10),scale=F,flab="")#spectrogram of wave with 'envelope noise' (right)
চূড়ান্ত পন্থা এটি সমাধানের মূল বিষয় হতে পারে তবে এটি বেশ জটিল। শ্যানন এট আল দ্বারা বিজ্ঞানে প্রকাশিত প্রতিবেদনে এই পদ্ধতিটি পেয়েছি । (1996) । তারা বর্ণালি হ্রাসের বেশ কৌতুকপূর্ণ প্যাটার্ন ব্যবহার করেছেন, এমন কিছু অর্জন করতে যা সম্ভবত বেশ রোবটিক মনে হয়। তবে একই সময়ে, বর্ণনা থেকে, আমি ধরে নিয়েছি তারা সম্ভবত আমার সমস্যার উত্তর দিতে পারে এমন সমাধান খুঁজে পেয়েছে। গুরুত্বপূর্ণ তথ্যটি রেফারেন্স এবং নোটগুলির পাঠ্য এবং নোট number এর দ্বিতীয় অনুচ্ছেদে রয়েছে- পুরো পদ্ধতিটি সেখানে বর্ণিত হয়েছে। এ পর্যন্ত এটির প্রতিরূপ দেওয়ার আমার প্রচেষ্টা ব্যর্থ হয়েছে তবে পদ্ধতিটি কীভাবে করা উচিত তার ব্যাখ্যা সহ একত্রে আমি যে কোডটি সন্ধান করতে পেরেছি তা নীচে is আমি মনে করি প্রায় সব ধাঁধা আছে, কিন্তু আমি এখনও কোনওভাবে পুরো ছবিটি পেতে পারি না।
###signal was passed through preemphasis filter to whiten the spectrum
#low-pass below 1200Hz, -6 dB per octave
h.f <- ffilter(h,to=1200)#low-pass filter up to 1200 Hz (but -6dB?)
###then signal was split into frequency bands (third-order elliptical IIR filters)
#adjacent filters overlapped at the point at which the output from each filter
#was 15dB down from the level in the pass-band
#I have just a bunch of options I've found in 'signal'
ellip()#generate an Elliptic or Cauer filter
decimate()#downsample a signal by a factor, using an FIR or IIR filter
FilterOfOrder()#IIR filter specifications, including order, frequency cutoff, type...
cutspec()#This function can be used to cut a specific part of a frequency spectrum
###amplitude envelope was extracted from each band by half-wave rectification
#and low-pass filtering
###low-pass filters (elliptical IIR filters) with cut-off frequencies of:
#16, 50, 160 and 500 Hz (-6 dB per octave) were used to extract the envelope
###envelope signal was then used to modulate white noise, which was then
#spectrally limited by the same bandpass filter used for the original signal
তাহলে ফলাফলটি কেমন শোনাবে? এটি গর্জনের মধ্যে কিছু হওয়া উচিত, একটি কোলাহলপূর্ণ ক্র্যাকিং, তবে এত রোবোটিক নয়। সংলাপটি কিছুটা বোধগম্যভাবে থেকে যায় তবে ভাল হবে। আমি জানি - এগুলি কিছুটা স্বার্থগত, তবে সে সম্পর্কে চিন্তা করবেন না - বন্য পরামর্শ এবং আলগা ব্যাখ্যা খুব স্বাগত।
তথ্যসূত্র:
- শ্যানন, আরভি, জেং, এফজি, কামাথ, ভি।, উইগনস্কি, জে।, এবং একেলিড, এম। (1995)। প্রাথমিকভাবে টেম্পোরাল ইঙ্গিত সহ স্পিচ স্বীকৃতি। বিজ্ঞান , 270 (5234), 303. http://www.cogsci.msu.edu/DSS/2007-2008/ শ্যানন / স্টেম্পোরাল_কুইজ.পিডিএফ থেকে ডাউনলোড করুন
noisy <- audio + k*white_noise
বিভিন্ন মানের জন্য কেন আপনি চান তা করেন না? অবশ্যই মাথায় রেখে, "স্বচ্ছ" এটি অত্যন্ত বিষয়ভিত্তিক। ওহ, এবং আপনি সম্ভবত একটি একক এলোমেলো-মান ফাইলের white_noise
মধ্যে মিথ্যা সম্পর্কের কারণে কোনও কাকতালীয় প্রভাব এড়াতে কয়েক ডজন বিভিন্ন নমুনা চান । audio
noise