Скрипт Praat для извлечения одного значения из голосового отчета

У меня есть праат-скрипт, в котором для объекта создаются шаг-объект и точечный процесс. Затем, объединив эти 2 с моим исходным объектом, я получаю голосовой отчет. Я хочу извлечь только значения некоторых полей и сохранить их в файл, но не могу найти способ. Возможно ли это или я должен просто создать отчет, а затем написать сценарий на другом языке программирования для их извлечения?

Мой скрипт выглядит так, и я планирую поместить его в цикл for для запуска нескольких объектов.

sound = selectObject: 1
pitch = To Pitch (cc)... 0.01 50 15 no 0.03 0.45 0.01 0.35 0.14 300
plus sound
pulses = To PointProcess (cc)
plus sound
plus pitch
voiceReport$ = Voice report... 0 0 50 300 1.3 1.6 0.03 0.45

person Dimitris    schedule 18.01.2016    source источник


Ответы (1)


Используйте extractWord$(), extractLine$() и extractNumber() _String_functions.html" rel="nofollow">строковые функции.

Соответственно, они извлекают из строки (в данном случае voiceReport$) слово, строку или число, следующее за указанной строкой. Вы можете использовать эту указанную строку для идентификации поля в голосовом отчете, который вы хотите.

Вот пример:

synth = Create SpeechSynthesizer: "English", "default"
sound = To Sound: "This is some text.", "no"
pitch = To Pitch (cc)... 0.01 50 15 no 0.03 0.45 0.01 0.35 0.14 300

selectObject: sound, pitch
pulses = To PointProcess (cc)

selectObject: sound, pulses, pitch
voiceReport$ = Voice report... 0 0 50 300 1.3 1.6 0.03 0.45

total_pulses = extractNumber(voiceReport$, "Number of pulses:")

writeInfoLine: "Found ", total_pulses, " pulses"

removeObject: synth, sound, pitch, pulses
person jja    schedule 19.01.2016
comment
Спасибо за помощь. - person Dimitris; 19.01.2016
comment
Если ответ помог, подумайте о том, чтобы проголосовать за него в дополнение к пометке как принятого (что вы уже сделали). - person jja; 20.01.2016
comment
Недостаточно репутации, но извините. - person Dimitris; 21.01.2016