AppleScriptからオーディオ


1

次の音声テキストをiPodで再生できるオーディオファイル(.mp3など)に保存します。

say "the company [[slnc 1200]]" using "Alex"
say "une entreprise [[slnc 1200]]" using "Thomas"
say "a farm [[slnc 1500]]" using "Alex"
say "une ferme [[slnc 1200]]" using "Thomas"

したがって、このAppleScriptの実行中に私のMacが言うことはすべて1つのオーディオファイルに保存する必要があります。4つの異なるオーディオファイルは必要ありません。代わりに、すべてのオーディオを含む1つの(大きな)オーディオファイルが必要です。これは可能ですか?

前もって感謝します。

回答:


0

できるよ!これを試して:

say "the company [[slnc 1200]]" using "Alex" saving to ((path to home folder as string) & "TheCompany.aiff")

iPodがサポートしているAIFF形式を使用する必要があることに注意してください。これにより、ホームディレクトリに保存されます。

このスクリプトの最後の部分にFFMPEGをインストールする必要があります。最初に開発者ツールをインストールする必要がある場合があります。ターミナルで次のコマンドを実行して確認します。

xcode-select --install

それが完了したら、FFMPEG用のパッケージマネージャーをインストールする必要があります。私は個人的にMacPortsを使用しているので、それがこれらの指示の目的です。ここからMacPortsをインストールして、OSに合った正しいバージョンを選択してください。インストールしたらsudo port selfupdate && sudo port install ffmpeg、ターミナルで実行し、パスワードを入力します。これが完了すると、このAppleScriptは機能するようになります。

global file_index
global temp_files
set file_index to 0
set temp_files to {}
set finished_filename to "result.aiff"

say "the company [[slnc 1200]]" using "Alex" saving to new_temp_file()
say "une entreprise [[slnc 1200]]" using "Thomas" saving to new_temp_file()
say "a farm [[slnc 1500]]" using "Alex" saving to new_temp_file()
say "une ferme [[slnc 1200]]" using "Thomas" saving to new_temp_file()

set final_command to "echo \""
repeat with filename in temp_files
    set final_command to final_command & "file " & POSIX path of filename & "
"
end repeat
set final_command to final_command & "\"|/opt/local/bin/ffmpeg -y -f concat -i - -c copy ~/" & finished_filename
do shell script final_command

#cleanup
repeat with current_file in temp_files
    do shell script "rm " & POSIX path of current_file
end repeat

on new_temp_file()
    set file_index to file_index + 1
    set current_temp_file to ((path to temporary items) as string) & "file" & file_index & ".aiff"
    set temp_files to temp_files & {current_temp_file}
    return current_temp_file
end new_temp_file

これにより、リストのsaysがfinished_filename変数で指定したファイルに結合されます。必要な数の「say」を追加できますが、私が使用したのと同じ構文(new_temp_file()に保存)を維持するだけで、準備完了です。


答えてくれてありがとう。しかし、私があなたの方法を使うと、私のMacはすべての行を異なる.aiffファイルに保存します。すべての行が単一のオーディオファイルに保存されるようにしたいと思います。4つの異なるオーディオファイルは必要ありませんが、代わりに、すべてのオーディオを含む1つの大きなファイルが必要です。これは可能ですか?前もって感謝します。
OlivierVR

変更点をご覧ください。彼らは今あなたのために働くはずです。
ウィリアムTフログガード

既に使用している場合、スクリプトは壊れていました。今すぐ修正!
ウィリアムTフログガード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.