Download presentation
1
Basic and advanced Praat Scripting
Kyuchul Yoon Division of English Kyungnam University Seoul National University, Linguistics Department,
2
Praat Scripting Language
Where to Get Help A Brief Look at a Sample Script Basic Topics Advanced Topics Hands-on Activities Scripting Examples
3
Where to Get Help Built-in manual “Help” menu of Praat (“search” button) Official Praat homepage Discussion group Scripts from other people “Files” menu from the discussion group
4
A Brief Look at a Sample Script
5
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
6
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
7
Basic Topics: What Praat can do
General functions Sound recording Analyses (spectral, pitch, formant, intensity) Annotation Manipulation (pitch, duration, intensity, formant) Specialized functions Voice analysis (jitter, shimmer, noise) Listening experiments Filtering Synthesis (source-filter, articulatory) Learning (neural networks, OT learning) Statistics (multi-dimensional scaling, etc.)
8
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 objects Sound, Spectrum, Spectrogram, TextGrid, Pitch, Formant, Intensity, Manipulation
9
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
10
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$’
11
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!
12
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 Edit select TextGrid 2syllAP-LHa Insert boundary Set interval text 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!
13
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 for j to 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))
14
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 square‘j’ = j*j endfor square1 = 1, square2 = 4, square3 = 9, square4 = 16, square5 = 25
15
Basic Topics: Language elements
Jumps, loops for/endfor ################################################# throws = 0 repeat sum = randomInteger(1,6) + randomInteger(1,6) throws = throws + 1 until sum = 12 echo Took me ‘throws’ trials ################################################# throws = 1 sum = randomInteger(1,6) + randomInteger(1,6) while sum <> throws = throws sum = randomInteger(1,6) + randomInteger(1,6) endwhile echo Took me ‘throws’ trials
16
Advanced Topics Arguments to commands/scripts Object selection
Calling system commands Info window, user interaction, file handling Scripting in an editor window
17
Advanced Topics Arguments to commands/scripts
form/endform keywords form 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 endform
18
Advanced Topics Object selection
How to select objects from your script select 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”
19
Advanced Topics Calling system commands
Call system (DOS/Unix/Linux) commands from a script directoryName$ = “resultFolder” system_nocheck mkdir ‘directoryName$’ will create a new subfolder in the current folder
20
Advanced Topics Info window, user interaction, files
Writing to the Info window from a script… echo text, clearinfo, print text, printtab, printline text A sample script clearinfo printline Minimum Maximum minValue = 1 maxValue = 10 print ‘minValue’ printtab print ‘maxValue’
21
Advanced Topics Info 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… : prevents from showing a progress window nocheck Remove : causes the script to continue even if there’s nothing to remove pause text : 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 editor startOfSelection = Get start of selection endOfSelection = Get end of selection
22
Advanced Topics Info 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
23
Advanced Topics Scripting 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 here cursorPosition = Get cursor Select... cursorPosition-0.02 cursorPosition+0.02 Extract sound selection (time from 0) endeditor To Spectrum (fft) Edit
24
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 folder Keywords to use: form/endform Create Strings as file list… for/endfor Edit pause fileappend
25
Hands-on Activities # Put variables here form Parameter settings
word inFolder_(with_sounds) demo-folder word outFile_(to_be_created) measurements.txt endform # Make a list of files in the folder Create Strings as file list... fileListObj ‘inFolder$’/*.wav Sort 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 Edit editor Sound soundObj pause Select the target segment targetDuration = Get selection length endeditor Remove fileappend ‘outFile$’ ‘fileName$’‘tab$’‘targetDuration:2’‘newline$’ endfor Remove all # End of script
26
Scripting Examples Scripts for (1) Prosody swapping (2) Speech corpus searching (3) K-ToBI labeling
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.