Hallo,
I designed a prototype for a transient designer. I would love if someone, who actually has such a beast (it seems, they all are only available for lots of money and operating systems I don't run) and could test if what I tweaked together actually sounds like a transient designer. ;)
Here's the README:
transient~.pd
is a little toy to work on transients of sounds, that is, attack and relase phases. It uses an envelope follower with variable attack and release times, which is contained here in two versions: as an abstraction and as a slightly faster C-external called "arenv~".
transenv~.pd is a wrapper around both implementations. If you can compile the binary, then just copy transenv~.ext.pd to transenv~.pd and you will be using it in the transient~.pd main patch.
All this is more or less copylefted (same as Pd license) by Frank Barknecht fbar@footils.org, uses the skeleton_tilde.c from Zexy to save typing, an algorithm from musicdsp.org for the envelope follower, and ideas which I read about in context with the SPL transient designer hardware.
There also is quite a bit of tweaking by ears in it to find some cool default values and the value ranges.
Frank Barknecht _ ______footils.org__
Hallo, Frank Barknecht hat gesagt: // Frank Barknecht wrote:
I designed a prototype for a transient designer.
A bit more tweaking done, replace attached file, if you like. Now to my ears it really can give or take a phat punch.
Frank Barknecht _ ______footils.org__
Hi all,
I'm thinking of building a patch suitable for replacing specific vovels of some pre-recorded / live-captured speech fragments by some other vovels (eg. every 'uuh' becomes an 'ööh' or 'aah' or the like, while every 'iih stays an 'iih') for morphing/bending swiss-german idioms. So I wanted to ask for possible solutions to do that in pd, possibly in realtime? I can think of analizing the source signal's FFT, modulate target vovels and feed results back into the resulting stream. But I'm quite an FFT newbie and perhaps there's a better/simpler approach?
Best regards Thomas
moin Thomas, moin List,
tweaking the vowels is easy (ha!) -- actually recognizing them is the tricky part, IM(ns)HO ... far as i know, the usual hack for getting a phonetic transcription out of speech signal input is a Hidden Markov Model (see Rabiner's tutorial for that). If you know what's coming (pre-recorded samples), you can get a vowel shift effect by tweaking the parameters of a filter-bank -- keyword "vocoder".
<plug type="shameless"> since we're talking about HMMs, here's a new related link to my current project:
http://www.ling.uni-potsdam.de/~moocow/projects/gfsm/gfsm-0.0.3.tar.gz http://www.ling.uni-potsdam.de/~moocow/projects/pd/pd-gfsm-0.01.tar.gz
this stuff is all very much work in progress, but it aims to be an abstract C library (with the corresponding Pd bindings) for finite-state machine operations (HMMs can be represented as weighted finite-state transducers, and gfsm supports those), similar in functionality to the absurdly expensive commercial doodad from at&t. In fact, the at&t folks use their library for speech recognition, synthesis, and virtually every known step in between, if you believe their publications...
more details in Graz ;-)
</plug>
marmosets, Bryan
On 15 September 2004 at 19:18:07, Thomas Comiotto appears to have written:
Hi all,
I'm thinking of building a patch suitable for replacing specific vovels of some pre-recorded / live-captured speech fragments by some other vovels (eg. every 'uuh' becomes an 'ööh' or 'aah' or the like, while every 'iih stays an 'iih') for morphing/bending swiss-german idioms. So I wanted to ask for possible solutions to do that in pd, possibly in realtime? I can think of analizing the source signal's FFT, modulate target vovels and feed results back into the resulting stream. But I'm quite an FFT newbie and perhaps there's a better/simpler approach?
Best regards Thomas
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://iem.at/cgi-bin/mailman/listinfo/pd-list
At 13:18 15.09.2004, Thomas Comiotto wrote:
Hi all,
I'm thinking of building a patch suitable for replacing specific vovels of some pre-recorded / live-captured speech fragments by some other vovels (eg. every 'uuh' becomes an 'ööh' or 'aah' or the like, while every 'iih stays an 'iih') for morphing/bending swiss-german idioms. So I wanted to ask for possible solutions to do that in pd, possibly in realtime? I can think of analizing the source signal's FFT, modulate target vovels and feed results back into the resulting stream. But I'm quite an FFT newbie and perhaps there's a better/simpler approach?
"...vowels are often uniquely identified by their first two formants..." there's a lot a research beeing done in this field. if you search google with "speech recognition" + vowels + formants you'll find quite a lot of papers on vowel recognition. even adding "swiss german" to the query brings up a few results. i'm not sure how to transform vowels, but i think it's as easy as letting a man's voice sound like a woman's using formant shifting. for doing fft's and reverse fft's i've found the vasp external to be very useful. however, for more complex computation i'm using python with the pyext external. there's the numeric python module for python which contains a lot of functions for manipulating large sets of data in a gridlike fashion. it contains all you need like fft, ifft, windowings function and the like. in a lot of academical papers on that topic you'll find example scripts for matlab and octave which are easily portable to python / numpy. doing ffts, _a_lot_ of data manipulation in the frequency domain and iffts is possible in realtime on a centrino 1.7. sven.
(gibt es ein leben nach dem diplom? ;-)