Informace o TextGridu

Pro posun na další strany použijte kurzorové šipky

Ⓒ Tomáš Bořil
borilt@gmail.com, 9. 3. 2015

Zadání

Vytvořte skript, který

  • Načte soubor .TextGrid (předpoklad: má alespoň 2 vrstvy), priklad_data.zip (milanek.TextGrid)
  • Vypíše počet vrstev (tiers)
  • Napíše jméno druhé vrstvy
  • Řekne počet intervalů druhé vrstvy
  • V jednom řádku uvede (pro Vámi vybraný interval)
    • label, počáteční čas, konečný čas (na 2 desetinná místa)

Vytvoření skriptu

  1. Vytvořte nový skript, smažte historii.
  2. Načtěte soubor .TextGrid a podívejte se na možnosti tlačítka Query.

Vrstvy textgridů mohou být interval tier (label má začátek a konec) a point tier (label přiřazen jen určitém časovému okamžiku, vhodné např. pro anotování událostí jako úder metronomu).

Proveďte funkce pro

  1. Počet vrstev (tiers)
  2. Jméno druhé vrstvy
  3. Počet intervalů druhé vrstvy
  4. Pro vybraný interval: label, počáteční a koncový čas

Do skriptu vložte historii, upravte ho a uložte.

Úprava skriptu

Skript doplníme o proměnné, jejich výpis a zaokrouhlení na 2 desetinná místa.

clearinfo
Read from file: "D:\AKU\milanek.TextGrid"

pocetVrstev = Get number of tiers
jmeno2 = Get tier name: 2
pocetIntervalu2 = Get number of intervals: 2
lab = Get label of interval: 2, 5
t1 = Get start point: 2, 5
t2 = Get end point: 2, 5

printline Počet vrstev: 'pocetVrstev'
printline Jméno druhé: 'jmeno2'
printline Počet intervalů: 'pocetIntervalu2'
printline 'lab', start: 't1:2', end: 't2:2'

Původní skript vytvořený z historie.

Úprava skriptu

Skript spustíme a vidíme, že nedělá to, co bychom chtěli.

clearinfo
Read from file: "D:\AKU\milanek.TextGrid"

pocetVrstev = Get number of tiers
jmeno2 = Get tier name: 2
pocetIntervalu2 = Get number of intervals: 2
lab = Get label of interval: 2, 5
t1 = Get start point: 2, 5
t2 = Get end point: 2, 5

printline Počet vrstev: 'pocetVrstev'
printline Jméno druhé: 'jmeno2'
printline Počet intervalů: 'pocetIntervalu2'
printline 'lab', start: 't1:2', end: 't2:2'

Problém je s texty: jméno 2. vrstvy a label intervalu. Aby Praat odlišil číselné proměnné s hodnotami, se kterými jde dále počítat, od pouhých textů, používá tzv. řetězcové proměnné. Ty mají za názvem navíc znak $, tedy např. nazev$.

Upravme ve skriptu proměnné na jmeno2$ a lab$ (vždy na dvou místech ve skriptu).

Fungující skript

clearinfo                                          <==
Read from file: "D:\AKU\milanek.TextGrid"

pocetVrstev = Get number of tiers
jmeno2$ = Get tier name: 2
pocetIntervalu2 = Get number of intervals: 2
lab$ = Get label of interval: 2, 5
t1 = Get start point: 2, 5
t2 = Get end point: 2, 5

printline Počet vrstev: 'pocetVrstev'
printline Jméno druhé: 'jmeno2$'
printline Počet intervalů: 'pocetIntervalu2'
printline 'lab$', start: 't1:2', end: 't2:2'

Fungující skript

clearinfo
Read from file: "D:\AKU\milanek.TextGrid"          <==

pocetVrstev = Get number of tiers
jmeno2$ = Get tier name: 2
pocetIntervalu2 = Get number of intervals: 2
lab$ = Get label of interval: 2, 5
t1 = Get start point: 2, 5
t2 = Get end point: 2, 5

printline Počet vrstev: 'pocetVrstev'
printline Jméno druhé: 'jmeno2$'
printline Počet intervalů: 'pocetIntervalu2'
printline 'lab$', start: 't1:2', end: 't2:2'

Označený objekt: TextGrid

Fungující skript

clearinfo
Read from file: "D:\AKU\milanek.TextGrid"

pocetVrstev = Get number of tiers                  <==
jmeno2$ = Get tier name: 2
pocetIntervalu2 = Get number of intervals: 2
lab$ = Get label of interval: 2, 5
t1 = Get start point: 2, 5
t2 = Get end point: 2, 5

printline Počet vrstev: 'pocetVrstev'
printline Jméno druhé: 'jmeno2$'
printline Počet intervalů: 'pocetIntervalu2'
printline 'lab$', start: 't1:2', end: 't2:2'

Označený objekt: TextGrid

pocetVrstev: 2

Fungující skript

clearinfo
Read from file: "D:\AKU\milanek.TextGrid"

pocetVrstev = Get number of tiers
jmeno2$ = Get tier name: 2                         <==
pocetIntervalu2 = Get number of intervals: 2
lab$ = Get label of interval: 2, 5
t1 = Get start point: 2, 5
t2 = Get end point: 2, 5

printline Počet vrstev: 'pocetVrstev'
printline Jméno druhé: 'jmeno2$'
printline Počet intervalů: 'pocetIntervalu2'
printline 'lab$', start: 't1:2', end: 't2:2'

Označený objekt: TextGrid

pocetVrstev: 2
jmeno2$: segment

Fungující skript

clearinfo
Read from file: "D:\AKU\milanek.TextGrid"

pocetVrstev = Get number of tiers
jmeno2$ = Get tier name: 2
pocetIntervalu2 = Get number of intervals: 2       <==
lab$ = Get label of interval: 2, 5
t1 = Get start point: 2, 5
t2 = Get end point: 2, 5

printline Počet vrstev: 'pocetVrstev'
printline Jméno druhé: 'jmeno2$'
printline Počet intervalů: 'pocetIntervalu2'
printline 'lab$', start: 't1:2', end: 't2:2'

Označený objekt: TextGrid

pocetVrstev: 2
jmeno2$: segment
pocetIntervalu2: 9

Fungující skript

clearinfo
Read from file: "D:\AKU\milanek.TextGrid"

pocetVrstev = Get number of tiers
jmeno2$ = Get tier name: 2
pocetIntervalu2 = Get number of intervals: 2
lab$ = Get label of interval: 2, 5                 <==
t1 = Get start point: 2, 5
t2 = Get end point: 2, 5

printline Počet vrstev: 'pocetVrstev'
printline Jméno druhé: 'jmeno2$'
printline Počet intervalů: 'pocetIntervalu2'
printline 'lab$', start: 't1:2', end: 't2:2'

Označený objekt: TextGrid

pocetVrstev: 2
jmeno2$: segment
pocetIntervalu2: 9
lab$: a:

Fungující skript

clearinfo
Read from file: "D:\AKU\milanek.TextGrid"

pocetVrstev = Get number of tiers
jmeno2$ = Get tier name: 2
pocetIntervalu2 = Get number of intervals: 2
lab$ = Get label of interval: 2, 5
t1 = Get start point: 2, 5                         <==
t2 = Get end point: 2, 5

printline Počet vrstev: 'pocetVrstev'
printline Jméno druhé: 'jmeno2$'
printline Počet intervalů: 'pocetIntervalu2'
printline 'lab$', start: 't1:2', end: 't2:2'

Označený objekt: TextGrid

pocetVrstev: 2
jmeno2$: segment
pocetIntervalu2: 9
lab$: a:
t1: 0.25089602

Fungující skript

clearinfo
Read from file: "D:\AKU\milanek.TextGrid"

pocetVrstev = Get number of tiers
jmeno2$ = Get tier name: 2
pocetIntervalu2 = Get number of intervals: 2
lab$ = Get label of interval: 2, 5
t1 = Get start point: 2, 5
t2 = Get end point: 2, 5                           <==

printline Počet vrstev: 'pocetVrstev'
printline Jméno druhé: 'jmeno2$'
printline Počet intervalů: 'pocetIntervalu2'
printline 'lab$', start: 't1:2', end: 't2:2'

Označený objekt: TextGrid

pocetVrstev: 2
jmeno2$: segment
pocetIntervalu2: 9
lab$: a:
t1: 0.25089602
t2: 0.42007790

Fungující skript

clearinfo
Read from file: "D:\AKU\milanek.TextGrid"

pocetVrstev = Get number of tiers
jmeno2$ = Get tier name: 2
pocetIntervalu2 = Get number of intervals: 2
lab$ = Get label of interval: 2, 5
t1 = Get start point: 2, 5
t2 = Get end point: 2, 5

printline Počet vrstev: 'pocetVrstev'              <==
printline Jméno druhé: 'jmeno2$'
printline Počet intervalů: 'pocetIntervalu2'
printline 'lab$', start: 't1:2', end: 't2:2'

Označený objekt: TextGrid

pocetVrstev: 2
jmeno2$: segment
pocetIntervalu2: 9
lab$: a:
t1: 0.25089602
t2: 0.42007790

Fungující skript

clearinfo
Read from file: "D:\AKU\milanek.TextGrid"

pocetVrstev = Get number of tiers
jmeno2$ = Get tier name: 2
pocetIntervalu2 = Get number of intervals: 2
lab$ = Get label of interval: 2, 5
t1 = Get start point: 2, 5
t2 = Get end point: 2, 5

printline Počet vrstev: 'pocetVrstev'
printline Jméno druhé: 'jmeno2$'                   <==
printline Počet intervalů: 'pocetIntervalu2'
printline 'lab$', start: 't1:2', end: 't2:2'

Označený objekt: TextGrid

pocetVrstev: 2
jmeno2$: segment
pocetIntervalu2: 9
lab$: a:
t1: 0.25089602
t2: 0.42007790

Fungující skript

clearinfo
Read from file: "D:\AKU\milanek.TextGrid"

pocetVrstev = Get number of tiers
jmeno2$ = Get tier name: 2
pocetIntervalu2 = Get number of intervals: 2
lab$ = Get label of interval: 2, 5
t1 = Get start point: 2, 5
t2 = Get end point: 2, 5

printline Počet vrstev: 'pocetVrstev'
printline Jméno druhé: 'jmeno2$'
printline Počet intervalů: 'pocetIntervalu2'       <==
printline 'lab$', start: 't1:2', end: 't2:2'

Označený objekt: TextGrid

pocetVrstev: 2
jmeno2$: segment
pocetIntervalu2: 9
lab$: a:
t1: 0.25089602
t2: 0.42007790

Fungující skript

clearinfo
Read from file: "D:\AKU\milanek.TextGrid"

pocetVrstev = Get number of tiers
jmeno2$ = Get tier name: 2
pocetIntervalu2 = Get number of intervals: 2
lab$ = Get label of interval: 2, 5
t1 = Get start point: 2, 5
t2 = Get end point: 2, 5

printline Počet vrstev: 'pocetVrstev'
printline Jméno druhé: 'jmeno2$'
printline Počet intervalů: 'pocetIntervalu2'
printline 'lab$', start: 't1:2', end: 't2:2'       <==

Označený objekt: TextGrid

pocetVrstev: 2
jmeno2$: segment
pocetIntervalu2: 9
lab$: a:
t1: 0.25089602
t2: 0.42007790

A jsme hotovi.