É um conjunto ordenado sequencialmente de instruções fornecidas a um intérprete (no nosso caso, o Praat) para realizar uma ou mais tarefas (algoritmo). Naturalmente, essas instruções para o intérprete devem ser ditas na língua do intérprete, isto é, na sintaxe de script Praat.
Depois de implementá-lo, basta executá-lo novamente quantas vezes forem necessárias;
Com um script, você garante a reprodutibilidade de suas análises;
Tarefas muito complexas ou repetitivas podem ser modularizadas e implementadas em um script;
Economia de tempo para executar outras etapas em sua pesquisa.
A habilidade mais importante ao implementar qualquer script é a capacidade de resolver um problema complexo e dividi-lo em uma sequência de tarefas simples.
Escrever um script no Praat pode parecer uma tarefa difícil no início e você pode não ver sentido em fazer algumas tarefas que serão praticadas no curso. Confesso que implementar um script no Praat não é uma tarefa trivial, pois talvez não seja a linguagem de programação mais fácil. Porém com o tempo, paciência e muito pesquisa (Google), implementar um script será uma tarefa bem simples.
Notepad++ (Windows);
Kate no (KDE) or Geany no (GTK);
TextWrangler (Mac);
Sublime text;
Editor interno no Praat.
Fácil de ler
Claro
Extensível
Funcional
Robusto
Eficiente
Fácil de ler
Estilo consistente.
Devidamente recuado.
Nomes das variáveis devem ser informativas.
Completamente comentado.
Deve ser facilmente compreendido por outras pessoas.
É possível (para você ou para outros) ir de volta em alguns meses e não morrer tentando para entender?
Claro
Objetivos claros
Deve ser transparente na forma de alcançar os objetivos.
Bem estruturado.
Extensível
Deve ser usado em outras situações.
Funcional
Considerando que o script foi implementado com boas práticas de programação (fácil compreensão e bem estruturado), um script que não funciona pode ser corrigido facilmente. Pois muitas vezes um script quando é implementado de maneiras enigmáticas (só o autor entende ou nem ele entende) será inútil para uma portabilidade.
Robusto
Quão bem ele reage aos erros do usuário?
Como se sai quando o ambiente não é como o esperado?
Eficiente
Os métodos utilizados devem ser os mais apropriados.
Os métodos utilizados devem ser os mais rápidos.
Devem ser mais econômicos em termos de uso de memória ou processador.
Em linguagem de programação, você pode trabalhar com variáveis, que são locais na memória do computador onde você pode armazenar um certo dado. Uma variável pode ser composta de uma combinação de letras e números, mas o Praat requer que ela comece com uma letra minúscula. Não pode conter espaços ou outros caracteres "estranhos", como acentos ou sinais de sustenido ou semelhantes. As variáveis diferenciam maiúsculas de minúsculas.
Variáveis numéricas.
Variáveis strings.
Arrays[ ].
#Isso é um comentário e não será lido pelo Praat (#, !, ;)
b = 3.1 ;b é uma variável numérica
!O comando abaixo serve para imprimir a variável b e pular uma linha
writeInfoLine: "O valor da variável é ", b, "."
#b recebe o valor 3.1
b = 3.1
#b recebe o valor 5.8
b = 5.8
#imprimir o valor de b
writeInfoLine: "O valor da variável é ", b, "."
#b recebe o resultado da multiplicação de 3.1 x 2
b = 3.1 * 2
#imprimir o valor de b
writeInfoLine: "O valor da variável é ", b, "."
#b recebe 3.1
b = 3.1
#c recebe o resultado da multiplicação b x 2
c = b * 2
#imprimir o valor de b
writeInfoLine: "O valor da variável b é: ", b, ",
... o valor da variável c é: ", c, "."
#os três pontos significa a continuação da instrução
#b recebe 3.1
b = 3.1
#c recebe o resultado da multiplicação b x 2
c = b * 2
#b recebe 5.8
b = 5.8
#imprimir o valor de b e c
writeInfoLine: "O valor da variável b é: ", b, ",
... o valor da variável c é: ", c, "."
#os três pontos significa a continuação da instrução
clearinfo
#módulo do número
modulo=abs(-15)
#imprimir a variável modulo
writeInfoLine: "Módulo: ", modulo
#arredonda p/ número inteiro mais próximo
a=round (1.5)
#imprimir a variável a
appendInfo: "Variável a: ", a,newline$
#arredonda p/ número inteiro inferior mais próximo
b=floor(1.99)
#imprimir a variável b
appendInfoLine: "Variável b: ", b
#arredonda p/ número inteiro superior mais próximo
c=ceiling(1.01)
#imprimir a variável c
appendInfoLine: "Variável c: ", c
#Raiz quadrada
raiz_quadrada=sqrt(2)
#imprimir a variável raiz_quadrada
appendInfoLine: "Raiz quadrada: ", fixed$(raiz_quadrada,3)
#encontrar o mínimo
minimo=min(5,8,-1,0.1,-10)
#imprimir a variável minimo
appendInfoLine: "Mínimo: ", minimo
#encontar o máximo
maximo=max(5,8,-1,0.1,-10)
#imprimir a variável maximo
appendInfoLine: "Máximo: ", maximo
#encontar a posição do máximo
pos_maximo=imax(5,8,-1,0.1,-10)
#imprimir a variável pos_maximo
appendInfoLine: "Posição máximo: ", pos_maximo
#encontar a posição mínimo
pos_minimo=imin(5,8,-1,0.1,-10)
#imprimir a variável pos_minimo
appendInfoLine: "Posição mínimo: ", pos_minimo
#toda variável do tipo string de ter o símbolo $ no final
palavra1$ = "Olá" ; variável palavra1$ recebe a string "Olá"
palavra2$ = "Mundo!" ;variável palavra2$ recebe a string "Mundo!"
#variável frase$ recebe a soma das strings somadas com um espaço em branco
frase$ = palavra1$ + " " + palavra2$
#imprimir a variável do tipo string frase$
writeInfoLine: "A frase completa é: ", frase$
#toda variável do tipo string de ter o símbolo $ no final
palavra1$ = "Olá" ; variável palavra1$ recebe a string "Olá"
palavra2$ = "Mundo!" ;variável palavra2$ recebe a string "Mundo!"
#variável frase$ recebe a soma das strings somadas com um espaço em branco
frase$ = palavra1$ + " " + palavra2$
#verifica o comprimento da soma das strings
#somadas com um espaço em branco
frase_comprimento = length(palavra1$ + " " + palavra2$)
#imprimir a variável do tipo string frase$
writeInfoLine: "Tamanho da string: ", frase_comprimento,
... ", ou: ", length(frase$)
#left$ recebe as 4 primeiras letras da string Fonoaudiologia
contador1$ = left$("Fonoaudiologia",4)
#imprimir a variável do tipo string contador$
writeInfoLine: contador1$
#right$ recebe as 5 últimas letras da string Fonoaudiologia
contador2$ = right$("Fonoaudiologia",5)
#imprimir a variável do tipo string contador$
appendInfoLine: contador2$
#variável nova_palavra$ recebe o resultado da soma
# das strings contador1$ + contador2$
nova_palavra$= contador1$ + contador2$
#imprimir a variável do tipo string nova_palavra$
appendInfoLine: nova_palavra$
#mid$ recebe 5 letras començando da quinta letra
#da palavra Fonoaudiologia
palavra$ = mid$("Fonoaudiologia",5,5)
#imprimir a variável do tipo string palavra$
appendInfoLine: palavra$
#index verica se a string "Fono"
#está contida na string "Fonoaudiologia"
#caso seja verdadeiro retorna a posição da primeira string
#caso seja falso retorna 0
teste1 = index("Fonoaudiologia","Fono")
#index verica se a string "logias"
# caso seja verdadeiro retorna a posição da primeira string
# caso seja falso retorna 0
teste2= index("Fonoaudiologia","logias")
#imprimir a variável teste1
writeInfoLine: "Posição da variável 1: ", teste1
#imprimir a variável teste2
appendInfo: "Posição da variável 2: ", teste2
#rindex verica se a string "Fono"
# está contida na string "Fonoaudiologia"
# caso seja verdadeiro retorna a posição onde começa a string
#caso tenha mais de uma string igual retornará a posição da mais distante
# caso seja falso retorna 0
teste1 = rindex("Fonoaudiologia","Fono")
#rindex verica se a string "logia"
# está contida na string "Fonoaudiologia"
# caso seja verdadeiro retorna a última posição
# caso seja falso retorna 0
teste2= rindex("Fonoaudiologia","logia")
#imprimir a variável teste1
writeInfoLine: "Posição da variável 1: ", teste1
#imprimir a variável teste2
appendInfo: "Posição da variável 2: ", teste2