03-08-2007 02:14 PM
I am wondering though about the zeroes between the "pulses" as you call them, isnt this going to change my original signal to a bigger size?
I think so - if I understood your request to "segment voiced sections" you wanted to see a "segment", or pair of 0-X/X-0 transitions, for each PP. To get a Chart to draw this picture, we need to feed it alternating X and 0 values.
The picture you provided appears to show a colored bar (instead of plotted 0/X/0) for each PP. We can probably generate a similar picture with a picture-control. Is it a graphical-depiction (for "the user") that's important here?
Fire just cropped-up - more later! ![]()
03-08-2007 02:43 PM
03-08-2007 10:27 PM
Hi madgreek,
Let's build a VI "Segment.vi" that does what you want. Our "Segment.vi" function will have inputs and outputs. Let's precisely define the datatypes of the inputs and outputs to Segment.vi
The inputs are easy (unless you've been playing with us) they are:
1) The integer array (of PPs) used to build the "voiced-sections" chart, and
2) The original "segment"-size (512)
Now it's your turn - please define the output(s) of Segment.vi.
Cheers!
03-08-2007 10:57 PM
BTW, "Testing TD-PSOLA Algo.vi" looks cool - nice comments and great coding style.
... "Quefrency"? ![]()
03-09-2007 02:23 AM
1) The integer array (of PPs) used to build the "voiced-sections" chart, and
2) The original "segment"-size (512)
as for the outputs of this vi we should be able to see the entire voiced sections divided into pieces of length equal to PP. Is this what you are reffering to or i have no clue at all?
....please let me know if i m not getting it (i do that alot sometimes)
Cheers
03-09-2007 02:31 PM
@madgreek wrote:
as for the outputs of this vi we should be able to see...
I didn't ask what we should be able to see! I asked what data-type will be used to hold the result of your "Segment" operation. (Hint: is it a 1D array where each element is a number? is it a 1D array where each element is a list of numbers?)
Please define the output(s) of Segment.vi!
03-09-2007 04:17 PM
03-09-2007 06:44 PM
... OK, lets agree on how to translate the PPs array into the [new] 1D output array. Lets start with a very simple example.
Say the PPs array consisted of three elements: {0,3,3}; and the original segment size was 10 (instead of 512)
How do you want to translate the first element (0) from this PPs array into the output array?
Please provide the list of numbers that will be in the output array after this translation.
The follow-up question will be, how do you want to translate the "voiced" section where PP=3 and spanning two original "Segments".
According to your previous posts, this is a "voiced" section and, in this example, represents 6.666 periods (20 original samples.)
Please provide the list of numbers that will be in the output array after this translation.
Cheers!
03-09-2007 07:45 PM
03-09-2007 11:46 PM
Hi madgreek,
is this is what you are asking me to answer?
Yes, that info. helps, though you didn't list the numeric values being output!![]()
Please confirm that in the simple example ({0,3,3}, SegSize=10) the output list (array) would look like this:
0,0,0,0,0,0,0,0,0,0, 3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,0,0
But what if another voiced-section followed? For Example {0,3,3,5}, SegSize=10 Will the output look like this?
0,0,0,0,0,0,0,0,0,0, 3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,0,0, 5,5,5,5,5,5,5,5,5,5
I think we'll be able to write Segment.vi once you've described how to handle this case. I'm particularly interested in whether you'll want to leave the 0,0 gap (essentially injecting a non-voiced section) between the 3s and 5s, fill it in with a partial pulse-period, or, perhaps "steal" one of the samples from PP5 to create a complete PP3.
0,0,0,0,0,0,0,0,0,0, 3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3, 3,5,5,5,5,5,5,5,5,5
?