Applescript: сценарий оболочки для сохранения команды say в формате WAV

Я пытаюсь сделать очень простой яблочный скрипт, но столкнулся с проблемой и не могу двигаться дальше.

То, что должна делать моя программа, очень просто. Он читает текстовый файл, разбивает его содержимое для создания массива, а затем выполняет сценарий оболочки, чтобы использовать команду say терминала Mac для чтения и сохранения текста в файл .wav.

На терминале я могу сохранить файл в формате wav, используя это: say -o "hello.wav" --data-format=LEF32@32000 "hello world"

Я безуспешно пытался имитировать этот код в своем яблочном скрипте, вот код:

set theFile to (choose file with prompt "Select a file to read:" of type {"TXT"})
open for access theFile
set fileContents to (read theFile)
close access theFile

set everyLine to every paragraph of fileContents

repeat with theLine in everyLine
    set thisOne to split(theLine, ";")
    set fileName to item 1 of thisOne

    do shell script "say -o" & item 1 of thisOne & ".wav --data-format=LEF32@32000 " & item 3 of thisOne

end repeat

to split(someText, delimiter)
    set AppleScript's text item delimiters to delimiter
    set someText to someText's text items
    set AppleScript's text item delimiters to {""} --> restore delimiters to default value
    return someText
end split

Запуск этого кода приводит к Opening output file failed: -43.

Даже простой do shell script "say -o hello.aiff hello возвращает ту же ошибку. Я был бы очень признателен за любую помощь, в том числе за то, что я просто не могу этого сделать, и я должен выучить правильный язык программирования :)


person Iacopo Boccalari    schedule 12.05.2014    source источник


Ответы (1)


У скрипта нет прав на сохранение файлов в корневом каталоге. Вы можете запустить скрипт с правами администратора или сохранить файл в другом месте, например в домашнем каталоге.

do shell script "say -o $HOME/hello.aiff hello"

person user309603    schedule 12.05.2014
comment
Спасибо большое, это было так просто! - person Iacopo Boccalari; 13.05.2014