basic and advanced praat scripting l.
Skip this Video
Loading SlideShow in 5 Seconds..
Basic and advanced Praat Scripting PowerPoint Presentation
Download Presentation
Basic and advanced Praat Scripting

Loading in 2 Seconds...

play fullscreen
1 / 26

Basic and advanced Praat Scripting - PowerPoint PPT Presentation

  • Uploaded on

Basic and advanced Praat Scripting. Kyuchul Yoon Division of English Kyungnam University Seoul National University, Linguistics Department, 2006. 12.09. Praat Scripting Language. Where to Get Help A Brief Look at a Sample Script Basic Topics Advanced Topics Hands-on Activities

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Basic and advanced Praat Scripting' - haley

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
basic and advanced praat scripting

Basic and advancedPraat Scripting

Kyuchul Yoon

Division of English

Kyungnam University

Seoul National University, Linguistics Department, 2006. 12.09

praat scripting language
Praat Scripting Language
  • Where to Get Help
  • A Brief Look at a Sample Script
  • Basic Topics
  • Advanced Topics
  • Hands-on Activities
  • Scripting Examples
where to get help
Where to Get Help
  • Built-in manual “Help” menu of Praat (“search” button)
  • Official Praat
  • Discussion group
  • Scripts from other people“Files” menu from the discussion group
basic topics
Basic Topics
  • Looks of Praat
  • What Praat can do
  • What is an object? (.TextGrid)
  • How to run a script (example)
  • Language elements
    • Comments, continuation lines, white space
    • Variables, arrays, formulas
    • Jumps, loops
basic topics looks of praat
Basic Topics: Looks of Praat
  • Windows: Praat objects, Praat picture, Editor
  • Menus: Praat, New, Read, Write
  • Command buttons (context-sensitive)
    • Activated when an object is selected
    • Changes depending on the type of an object (e.g. Sound)…Help, Edit, Play, Draw…, Query-, Modify-, Annotate-Analyse: Periodicity-, Spectrum-, Formants & LPC-, …, To Intensity…Manipulate: To Manipulation…Synthesize: Convert-, Filter-, Combine sounds-
  • Command buttons (fixed)
    • Rename…, Copy…, Info, Remove, Inspect
basic topics what praat can do
Basic Topics: What Praat can do
  • General functionsSound recordingAnalyses (spectral, pitch, formant, intensity)AnnotationManipulation (pitch, duration, intensity, formant)
  • Specialized functionsVoice analysis (jitter, shimmer, noise)Listening experimentsFilteringSynthesis (source-filter, articulatory)Learning (neural networks, OT learning)Statistics (multi-dimensional scaling, etc.)
basic topics what is an object textgrid
Basic Topics: What is an object? (.TextGrid)
  • A segment of computer memory
  • Contains a set of data in the Praat program
  • Resides in the Praat object window (e.g. sample.wav)
    • e.g.) Sound sample
  • Is NOT a file! (Must be saved!)
  • Needs to be clicked to be selected (Shift, Ctrl, dragging)
  • Types of objectsSound, Spectrum, Spectrogram, TextGrid, Pitch, Formant, Intensity, Manipulation
basic topics what is an object textgrid9
Basic Topics: What is an object? (.TextGrid)
  • TextGrid object
    • Created with a sound object selected Annotate-To TextGrid…
    • Used for annotation (segmentation and labeling)
    • Consists of a number of tiers
    • Two kinds of tiers:
      • Interval tier: a connected sequence of labeled intervals with boundaries in between
      • Point tier: a sequence of labeled points
basic topics what is an object textgrid10
Basic Topics: What is an object? (.TextGrid)
  • Examining an object through Query…
    • Gives you information about the selected object
    • Information is displayed by default in the Info window
    • Query results can be used to put information into a variable
      • myStartTime = Get start time
      • myPointLabel$ = Get label of point… 1 1
  • Modifying an object through Modify…
    • Query results can be used to modify an object, e.g. TextGrid
      • Set point text… 1 1 ‘myPointLabel$’
basic topics how to run a script example
Basic Topics: How to run a script (example)
  • What is a script?
    • An executable text with menu commands and action commands
    • Praat ==> New/Open Praat script
    • In the script editor, Run ==> Run
  • Edit ==> Paste history in the script editor
    • Records all the menu/action commands
    • Can be used to copy/paste recorded commands
    • Constants could be replaced with variables
    • Clear history to erase all the earlier commands
    • A good source for beginners!
basic topics how to run a script example12
Basic Topics: How to run a script (example)

Paste history

Read from file... D:\recording\2syllAP-LHa.wav

To TextGrid... "phonological phonetic" phonetic

plus Sound 2syllAP-LHa


select TextGrid 2syllAP-LHa

Insert boundary... 1 0.5

Set interval text... 1 1 test


fileLocation$ = "D:\recording\2syllAP-LHa.wav"

uTonesTierName$ = "phonological"

sTonesTierName$ = "phonetic"

uTonesTier = 1

intervalText$ = "test"

Read from file... 'fileLocation$'

Rename… soundObj

To TextGrid... "'uTonesTierName$' 'sTonesTierName$'" 'sTonesTierName$'

Rename… textgridObj

plus Sound soundObj


pause Insert a sample interval?

select TextGrid textgridObj

Insert boundary... uTonesTier 0.5

Set interval text... uTonesTier 1 'intervalText$'

Now a script!

basic topics language elements
Basic Topics: Language elements
  • Comments, continuation lines, white space
    • All white spaces (and tabs) at line beginnings are ignored
      • You can use indenting to make your script readable (tabs preferred)sum = 0 for i to 10 for j to 10 sum = sum + i*j endfor endfor pause The total sum is ‘sum’
    • Comments lines start with # or ! or ; (# preferred)
    • You can split long command lines into multiple lines using …
      • myStringVariable$ = left$(myMainSentence$, (lengthOfUtterance-…lengthOfRightWord))
basic topics language elements14
Basic Topics: Language elements
  • Variables, arrays, formulas
    • Numeric variables, variable = formula
      • e.g.) lengthOfSentence = 10
    • String variables (end in a dollar sign), variable$ = string
      • e.g.) sentenceToProcess$ = “Praat rules”
      • Predefined string variables: newline$, tab$, shellDirectory$
    • Variable substitution (in between single quotes), ‘variable$’
      • e.g.) echo The number of characters is ‘lengthOfSentence’
      • e.g.) Try ‘lengthOfSentence:2’
    • Array variables: simulated with quote substitution
      • e.g.) for j from 1 to 5 square‘j’ = j*j endforsquare1 = 1, square2 = 4, square3 = 9, square4 = 16, square5 = 25
basic topics language elements15
Basic Topics: Language elements
  • Jumps, loops

for/endfor################################################# throws = 0repeat sum = randomInteger(1,6) + randomInteger(1,6) throws = throws + 1until sum = 12echo Took me ‘throws’ trials#################################################throws = 1sum = randomInteger(1,6) + randomInteger(1,6)while sum <> 12 throws = throws + 1 sum = randomInteger(1,6) + randomInteger(1,6)endwhileecho Took me ‘throws’ trials

advanced topics
Advanced Topics
  • Arguments to commands/scripts
  • Object selection
  • Calling system commands
  • Info window, user interaction, file handling
  • Scripting in an editor window
advanced topics arguments to commands scripts
Advanced TopicsArguments to commands/scripts
  • form/endform keywordsform Types of script arguments

natural numOfSentences_(positive_whole_number) 337

integer amplitudeSteps_(whole_number) -2000

real factorOfZoomOut_(real_number) -3.5

positive factorOfZoomIn_(positive_real_number) 4.7

comment A line with any text

word targetWord_(string_without_spaces) school

sentence targetSentence_(any_short_string) my school

text targetText_(variableName_not_shown) my school bus

boolean trueOrFalse_(with_a_checkbox) 1

choice myChoice_(with_a_radiobox) 1

button choice 1

button choice 2

button choice 3

comment Choose any color

optionmenu Color: 2

option Red

option Green


advanced topics object selection
Advanced TopicsObject selection
  • How to select objects from your scriptselect Sound hello1 plus Sound hello2 minus Sound hello2 select all minus Sound hello2 Rename… greeting1 Remove ################## fullFileName$ = “male02-Seoul-32yrs.wav” Read from file… ‘fullFileName$’ filePrefix$ = fullFileName$ - “.wav” newTextGridName$ = filePrefix$ + “.TextGrid”
advanced topics calling system commands
Advanced TopicsCalling system commands
  • Call system (DOS/Unix/Linux) commands from a scriptdirectoryName$ = “resultFolder”system_nocheck mkdir ‘directoryName$’will create a new subfolder in the current folder
advanced topics info window user interaction files
Advanced TopicsInfo window, user interaction, files
  • Writing to the Info window from a script…
    • echo text, clearinfo, printtext, printtab, printlinetext
  • A sample scriptclearinfoprintline Minimum MaximumminValue = 1maxValue = 10print ‘minValue’printtabprint ‘maxValue’
advanced topics info window user interaction files21
Advanced TopicsInfo window, user interaction, files
  • Messages to the user
    • exit text : to stop the execution of the script with the text message
    • nowarn Write to WAV file… hello.wav : prevents warning messages, e.g. about clipped sound samples
    • noprogress To Pitch… 0 75 500 : prevents from showing a progress window
    • nocheck Remove : causes the script to continue even if there’s nothing to remove
    • pausetext : temporarily halts a Praat script. Continue & Stop buttons.
      • Can be used to accept user actions which will be stored in variables
      • e.g.) User selecting a particular section of a sound object in an editorstartOfSelection = Get start of selection endOfSelection = Get end of selection
advanced topics info window user interaction files22
Advanced TopicsInfo window, user interaction, files
  • File handling
    • Reading an existing file, e.g. hello.wav, sentences.txt
      • Read from file… C:/sound/hello.wav
      • Read Strings from raw text file… C:/text/sentences.txt
    • Creating a new text file in the current folder, e.g. result.txt
      • fileappend result.txt Hello world!’newline$’
      • fileappend result.txt I am back!
    • Deleting an existing file
      • filedelete C:/sound/hello.wav
    • Getting a list of file names of a particular folder
      • Create Strings as file list… fileListObj C:/sound/*.wav
        • The object fileListObj has a list of filename strings in one column
        • With for/endfor, repeated actions can be taken
advanced topics scripting in an editor window
Advanced TopicsScripting in an editor window
  • In a Praat script
    • editor/endeditor required
  • In an editor script
    • Only endeditor is required

editor Sound soundObj#do your stuff herecursorPosition = Get cursorSelect... cursorPosition-0.02 cursorPosition+0.02Extract sound selection (time from 0)


To Spectrum (fft)


hands on activities
Hands-on Activities
  • Write a script that will help measure the duration of a user-selected segment for all of the .wav files in a folderKeywords to use:form/endformCreate Strings as file list…for/endforEditpausefileappend
hands on activities25
Hands-on Activities

# Put variables here

form Parameter settings

word inFolder_(with_sounds) demo-folder

word outFile_(to_be_created) measurements.txt


# Make a list of files in the folder

Create Strings as file list... fileListObj ‘inFolder$’/*.wav


numOfFiles = Get number of strings

pause ‘numOfFiles’ files identified. Continue?

# Loop through each file

for iFile to numOfFiles

select Strings fileListObj

fileName$ = Get string... iFile

pause Opening the file ‘fileName$’

Read from file... ‘inFolder$’/’fileName$’

Rename... soundObj


editor Sound soundObj

pause Select the target segment

targetDuration = Get selection length



fileappend ‘outFile$’ ‘fileName$’‘tab$’‘targetDuration:2’‘newline$’


Remove all

# End of script

scripting examples
Scripting Examples
  • Scripts for(1) Prosody swapping(2) Speech corpus searching(3) K-ToBI labeling