Date   
Re: Can't load Praat's website

chengafni
 

Thank you, Paul.
The http version doesn't work for me either. I guess I'll switch to Chrome for now.

Re: KlattGrid synthesis from GUI

Boersma Paul
 

On 23 Jan 2020, at 14:02, r.puderbaugh via Groups.Io <r.puderbaugh=ed.ac.uk@groups.io> wrote:

The “klattgrid from vowel” option on the GUI allows us to modify the formant patterns, but is too restrictive because it does not allow us to generate fricatives with formants. We wonder if this is because it is based on an oral formants-only klattgrid, not on one that includes frication formants.
yes.

> When we try to create a 2 formant vowel (or a fricative) using the Create Klattgrid...command on the GUI, it successfully generates the voicing source, but doesn't allow us to filter it.
But it does. You have to add formant and bandwidth values, and you can do so interactively with the "Edit oral formant grid" window.

We are wondering if the problem has to do with setting the formant bandwidths. We noted that we were able to synthesise vowels and fricatives successfully when using scripts, and that these scripts contain “Add (oral) formant bandwidth point” commands. However, the GUI only lets us specify a bandwidth range, but not specific formant bandwidths.
All commands that you find in scripts are also available as commands in the GUI; so, under "Modify vocal tract", there is the menu item "Add oral formant bandwidth point". It may be easier, though, to create a bandwidth curve with the "Edit oral formant grid" window, in which you use "Show bandwidths" from the Formants menu.
_____

Paul Boersma
Professor of Phonetic Sciences, University of Amsterdam

Visiting address: Spuistraat 134, room 632, Amsterdam
Mail: P.O. Box 1642, 1000BP Amsterdam, The Netherlands
Website: http://www.fon.hum.uva.nl/paul/

KlattGrid synthesis from GUI

r.puderbaugh@...
 

We have been trying to use the klattgrid synthesizer via the GUI for use in a Phonetics class.  We would like students to be able to use this to synthesise words of their choice, but are not sure that all of them would be comfortable in the scripting environment.
 
We have successfully modified the "klattgrid from vowel" on the graphical user interface, but have been having problems with synthesis starting from the “Create Klattgrid” command.  The “klattgrid from vowel” option on the GUI allows us to modify the formant patterns, but is too restrictive because it does not allow us to generate fricatives with formants.  We wonder if this is because it is based on an oral formants-only klattgrid, not on one that includes frication formants. 
 
When we try to create a 2 formant vowel (or a fricative) using the Create Klattgrid...command on the GUI, it successfully generates the voicing source, but doesn't allow us to filter it. We are wondering if the problem has to do with setting the formant bandwidths.  We noted that we were able to synthesise vowels and fricatives successfully when using scripts, and that these scripts contain “Add (oral) formant bandwidth point” commands.  However, the GUI only lets us specify a bandwidth range, but not specific formant bandwidths.
 
Do you have any ideas about what we could do? 

Many thanks,
 
Alice Turk and Rebekka Puderbaugh, U. of Edinburgh

Re: Can't load Praat's website

Boersma Paul
 

On 22 Jan 2020, at 18:23, chengafni via Groups.Io <balshan.bashlan=gmail.com@groups.io> wrote:

For the past week I've been getting a "Problem loading page" error message whenever I try loading Praat's website on Firefox.
Does anyone else have the same problem?
This may be caused by the fact that a https version of the website worked for a week (two weeks ago), and your browser remembers that. Please make sure that the address starts with http://, not with https://

We will try to make both versions available.
_____

Paul Boersma
Professor of Phonetic Sciences, University of Amsterdam

Visiting address: Spuistraat 134, room 632, Amsterdam
Mail: P.O. Box 1642, 1000BP Amsterdam, The Netherlands
Website: http://www.fon.hum.uva.nl/paul/

Re: Can't load Praat's website

chengafni
 

Thanks, Daniel.
This problem is new and specific to Firefox (it works fine for me on Google Chrome). I just wanted to check if other Firefox users experience this issue.

Re: Can't load Praat's website

Daniel McCloy
 

When I type praat.org in Firefox or Chromium, I get redirected to http://www.fon.hum.uva.nl/praat/ (as expected). So I can't reproduce your problem. Are you located in a country where the internet is censored? If you just want to download praat, you can also try to get it from its GitHub releases page: https://github.com/praat/praat/releases

Can't load Praat's website

chengafni
 

For the past week I've been getting a "Problem loading page" error message whenever I try loading Praat's website on Firefox.
Does anyone else have the same problem?

Chen

Re: Behavior of 'include' inside 'if' statement

Boersma Paul
 

On 17 Jan 2020, at 03:39, Pablo Arantes via Groups.Io <pabloarantes=protonmail.com@groups.io> wrote:

if option = 1
include external1.praat
else
include external2.praat
endif
The "include" statement just includes the contents of a file; that's why it is not indented. So if external1.praat contains
AA
BB
CC
end external2.praat contains
DD
EE
FF
then the resulting script is

if option = 1
AA
BB
CC
else
DD
EE
FF
endif

This is the same as in many other programming languages. It allows interesting stuff (such as including the contents of a "for" loop), and, relatedly, it does not take part in normal execution flow logic.

Analogously, the following does no choose between wo procedure definitions:

if option = 1
procedure x
do this
endproc
else
procedure x
do that
endproc
endif

_____

Paul Boersma
Professor of Phonetic Sciences, University of Amsterdam

Visiting address: Spuistraat 134, room 632, Amsterdam
Mail: P.O. Box 1642, 1000BP Amsterdam, The Netherlands
Website: http://www.fon.hum.uva.nl/paul/

Behavior of 'include' inside 'if' statement

Pablo Arantes
 

Fellow users,

On a script, I would like to include an external script conditional on the value of a variable.

A simplified version of the relevant bit would be something like the following:

if option = 1
include external1.praat
else
include external2.praat
endif

('includes' are not indented following instructions on section 5.8 of Praat's Manual)

I was expecting that if 'option' gets '1', 'external1.praat' would be included but 'external2.praat' would not. Conversely, if 'option' gets a value other than '1', then 'external2.praat' would be included but not 'external1.praat'.

What I'm getting, though, is that 'external1.praat' is always included, regardless of the value of 'option', as if 'include' ignores that it is nested inside an 'if' statement. Is it the intended behavior? Is there another way to implement what I described in the paragraph above?

Regards,

Pablo

--
www.pabloarantes.net

Re: Replace RMS of a wav file with RMS value pulled from a list.

Irene dlCP
 

Wonderful, thank you Paul.

irene dlCP


El mié., 25 dic. 2019 a las 0:21, Boersma Paul (<paul.boersma@...>) escribió:
On 24 Dec 2019, at 18:38, Irene dlCP <idelacruzpavia@...> wrote:
>
> > I have compressed, chunked an restitched a number of utterances. As a result, the modified versions have lower RMS than the original files.
> I want to restore the original RMS but cannot figure out how to do this. Does anybody have any suggestion?

Let's suppose that the mean of your signal is 0. If not, do "Subtract mean" (under Modify).

Then, if your RMS used to be 0.3 Pa, and it is now 0.2 Pa, then it has apparently been multiplied by 2/3 during your stitching. To get your RMS back to 0.3 Pa, multiple your signal by 3/2, e.g. with the "Multiply" command (under Modify).
_____

Paul Boersma
Professor of Phonetic Sciences, University of Amsterdam

Visiting address: Spuistraat 134, room 632, Amsterdam
Mail: P.O. Box 1642, 1000BP Amsterdam, The Netherlands
Website: http://www.fon.hum.uva.nl/paul/











Re: Replace RMS of a wav file with RMS value pulled from a list.

Boersma Paul
 

On 24 Dec 2019, at 18:38, Irene dlCP <idelacruzpavia@...> wrote:

I have compressed, chunked an restitched a number of utterances. As a result, the modified versions have lower RMS than the original files.
I want to restore the original RMS but cannot figure out how to do this. Does anybody have any suggestion?
Let's suppose that the mean of your signal is 0. If not, do "Subtract mean" (under Modify).

Then, if your RMS used to be 0.3 Pa, and it is now 0.2 Pa, then it has apparently been multiplied by 2/3 during your stitching. To get your RMS back to 0.3 Pa, multiple your signal by 3/2, e.g. with the "Multiply" command (under Modify).
_____

Paul Boersma
Professor of Phonetic Sciences, University of Amsterdam

Visiting address: Spuistraat 134, room 632, Amsterdam
Mail: P.O. Box 1642, 1000BP Amsterdam, The Netherlands
Website: http://www.fon.hum.uva.nl/paul/

Replace RMS of a wav file with RMS value pulled from a list.

Irene dlCP
 

Hi all,

I have compressed, chunked an restitched a number of utterances. As a result, the modified versions have lower RMS than the original files.
I want to restore the original RMS but cannot figure out how to do this. Does anybody have any suggestion?

Thank you all and happy holidays.

Irene dlCP

Re: Same problem here

Boersma Paul
 

We are not talking about a "problem" with pitch measurement. As noted often on these pages, as well as in the Intro and the FAQ in the manual, measurements depend on where you take them, and they are all equally good. Please read the Intro and the FAQ before speculating further about how and where pitch is measured.

The problem is in what you define as a "range". Should any local hiccup matter? For measuring variability, it's much better to take the 10% and 90% quantiles, for instance, than the minimum and maximum. You will notice that those quantiles are much more robust against shifting the precise measurement times.

And I advise against deriving large numbers of measurements from the Sound window. That's poorly reproducible, not because of the zooming (which shouldn't matter much) but because you have little reproducibility of the measurement settings. Try automating this with the help of a TextGrid; see the scripting examples.

As the calculation of the pitch is dependent on the graphical display, only by zooming into a segment of speech, the calculated mean/max/min for that segment differs greatly (p.e. 20Hz difference for the mean, 100Hz difference for the max).
yes, zooming in to a small segment causes all the invisible stuff to the left and right of the visible window to be ignored. With the TextGrid scripting example, one global pitch curve is computed, and means (and quantiles) can be computed locally from that curve.
_____

Paul Boersma
Professor of Phonetic Sciences, University of Amsterdam

Visiting address: Spuistraat 134, room 632, Amsterdam
Mail: P.O. Box 1642, 1000BP Amsterdam, The Netherlands
Website: http://www.fon.hum.uva.nl/paul/

Re: Does Praat have a membership operator (like Python "in")?

Earl Brown
 

Thank you much! I got it to work after "Convert to backslash trigraphs" and "Sort", as I'm looking at Portuguese words with non-ASCII characters (e.g., "português").
 

Same problem here

wenzel_lisa@...
 

Dear all,
I´ve got pretty much the same problem as Milena:

For a research project, we want to use the F0-range and the F0-mean as a measure of emotional arousal.
Per person, there are multiple voice recordings of which each takes at least 3 minutes of talking. We also have to cut out some parts in between and will be cutting out detected mistakes of the algorithm by hand by comparing the pitch line with the voice of the speaker and with the spectrogram.

As the calculation of the pitch is dependent on the graphical display, only by zooming into a segment of speech, the calculated mean/max/min for that segment differs greatly (p.e. 20Hz difference for the mean, 100Hz difference for the max).

As we need the mean/max/min for the whole 3 minutes, I am now insecure if the values we get by selecting the whole 3-minutes sound segment and choosing "Get maximum pitch" etc are still meaningful or rather random? I don´t know how the algorithm works when you zoom out, p.e. if all data is being considered by summarizing them into mean values or if the algorithm chooses every 10th data point and doesn´t consider the rest of the data that is being taken into account when zoomed in?

Also, I read above that it would be helpful to extract a pitch object, but for cutting out mistakes of the algorithm, i need to be able to see the spectrogram behind it. Thats not possibe, is it?

Thank you very much for reading this and also for your answers given above - this page is already very helpful.

Best wishes!

Lisa

Re: Does Praat have a membership operator (like Python "in")?

Boersma Paul
 

On 12 Dec 2019, at 06:22, Earl Brown <ekbrown77@...> wrote:

I've loaded the TXT file list of words with "wds = Read Strings from raw text file: test_items_path$". Now, I'm looping over the intervals and would like to test whether the current interval label (word) is in the list of words I'm interested in analyzing.
select your Strings object, and do "To WordList". The result is a sorted list in which you can efficiently look up words with "Has word..."
_____

Paul Boersma
Professor of Phonetic Sciences, University of Amsterdam

Visiting address: Spuistraat 134, room 632, Amsterdam
Mail: P.O. Box 1642, 1000BP Amsterdam, The Netherlands
Website: http://www.fon.hum.uva.nl/paul/

Does Praat have a membership operator (like Python "in")?

Earl Brown
 

In an interval tier I have hundreds of words, with each word delimited in a separate interval, but I'm interested in analyzing only some of them. In a TXT file on my hard drive, I have the list of words that I'm interested in analyzing. In a Praat script, I've loaded the TXT file list of words with "wds = Read Strings from raw text file: test_items_path$". Now, I'm looping over the intervals and would like to test whether the current interval label (word) is in the list of words I'm interested in analyzing.

Does Praat scripting have a membership operator, like Python and Julia "in", or R "%in%"? If not, how might I create a function in Praat scripting to create one? Or is there a better way to do this task (loop over intervals and stopping to analyze only some of the intervals, depending on whether the label of the current interval is in a list of desired words)?

Re: Clustering around the pitch floor

Boersma Paul
 

On 7 Dec 2019, at 23:38, Austin Zheng <azaustinzheng@...> wrote:

I notice that there is a cluster of frequency estimates near the pitch floor.
The explanation is the same as the explanation of the octave cost that I answered you about before.

If you have a perfectly periodic signal with a period of 5 milliseconds, then 200 Hz is the pitch candidate that you want. However, the signal does not only repeat itself after 5 ms, but also after 10 ms, 15 ms, 20 ms, 25 ms..., so equally good pitch candidates are 100 Hz, 66.7 Hz, 50 Hz, 40 Hz...

The one that you want from all those equally good candidates, must be the highest of those frequencies; hence the octave cost parameter that I wrote about. Please look it up in the paper I wrote about this in 1993, which has all the pictures that help explain this.
_____

Paul Boersma
Professor of Phonetic Sciences, University of Amsterdam

Visiting address: Spuistraat 134, room 632, Amsterdam
Mail: P.O. Box 1642, 1000BP Amsterdam, The Netherlands
Website: http://www.fon.hum.uva.nl/paul/

Clustering around the pitch floor

Austin Zheng
 

I use the following steps to get a scatter plot of frequency estimates:

1. Load clips into Praat

2. Use the To Pitch (ac) program in Praat with the following parameters:
    TimeStep: 60 ms;  PitchFloor: 50 Hz;  PitchCeiling: 400 Hz;  SilenceThreshold: 0;  VoicingThreshold: 0;
    OctaveCost: 0;  OctaveJumpCost: 0;  VoicedUnvoicedCost: 0; Hanning window
3. Save the Pitch object in a .txt file using Praat
4. Convert the .txt file to a .csv file using Python
5. Use Python to read the .csv file, filter out all candidates with frequency above 400 Hz, and select the candidate with the highest strength for each frame. Call these the strongest candidates.
6. Create a scatter plot of the strongest candidates

When I do this, I notice that there is a cluster of frequency estimates near the pitch floor. I continue to observe this when I lower the pitch floor to 25 Hz, and then to 10 Hz. It seems to me that the clustering is a result of measurement as some function of the pitch floor, rather than the presence of noise in the clips (which should have a fixed Hz, not one that changes based on the pitch floor). 

Could I ask about possible explanations for this observation? 

Re: Using Pre existing text grids in Praat in FormantPro

Yi Xu
 

I think Paul is right. FormantPro assumes that the TextGrid file name is the same as the sound name, and they differ only in their extensions. But I also suspect that you may encounter further problems as many other things about your operation are unclear to me. If you don’t want to bother too many other people on this list, you are welcome to write to me privately to resolve any further issues.

Yi

On 7 Dec 2019, at 11:45, Boersma Paul via Groups.Io <paul.boersma@...> wrote:

On 7 Dec 2019, at 00:35, Kathryn Daniels <kdaniels.slp@...> wrote:

It seems my problem is getting the textgrid from praat to the desktop to put in the folder with FormantPro in a format that works.

Although I know very little about FormantPro, I suspect that FormantPro can connect sound files to their TextGrid files only if their names correspond. Your sound file is called BB-sound.wav, and your TextGrid file is called default.TextGrid. I suspect, then, that you will have more success if you rename your TextGrid file to BB-sound.TextGrid.
_____

Paul Boersma
Professor of Phonetic Sciences, University of Amsterdam

Visiting address: Spuistraat 134, room 632, Amsterdam
Mail: P.O. Box 1642, 1000BP Amsterdam, The Netherlands
Website: https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.fon.hum.uva.nl%2Fpaul%2F&amp;data=02%7C01%7C%7C6a02bcde35374843689e08d77b0af62b%7C1faf88fea9984c5b93c9210a11d9a5c2%7C0%7C0%7C637113159324549729&amp;sdata=AjUxV2IagJRXOo5ErwRb5F6oahsf4QdmBbFeNw%2BzfI4%3D&amp;reserved=0












------------------------------
Yi Xu, Ph.D.
Professor of Speech Sciences
Department of Speech, Hearing and Phonetic Sciences

University College London
Chandler House
2 Wakefield Street
London WC1N 1PF
UK

Tel:  020 7679 4082 (internal: 24082)
email: yi.xu@...
http://www.homepages.ucl.ac.uk/~uclyyix/
------------------------------