1 votes

AppleScript vers l'audio

Je souhaite enregistrer le texte parlé suivant dans un fichier audio que je peux lire sur mon iPod (en .mp3 ou autre).

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"

Ainsi, tout ce que mon Mac dit pendant l'exécution de cet AppleScript doit être enregistré dans un fichier audio. Je ne veux pas 4 fichiers audio différents, mais plutôt un (gros) fichier audio avec tous les sons. Est-ce possible ?

Merci d'avance.

0voto

William T Froggard Points 5321

Vous le pouvez certainement ! Essaie ça :

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

Notez que vous devez utiliser le format AIFF, que les iPods prennent en charge. Cela permettra de le sauvegarder dans votre répertoire personnel.

Vous devez installer FFMPEG pour la partie finale de ce script. Il se peut que vous deviez d'abord installer les outils du développeur. Exécutez cette commande dans le Terminal pour vérifier :

xcode-select --install

Une fois que cela est terminé, vous devriez installer un gestionnaire de paquets pour FFMPEG. Personnellement, j'utilise MacPorts, et c'est pour cela que ces instructions sont destinées. Installez MacPorts à partir de ici en choisissant la version correcte pour votre système d'exploitation. Une fois qu'il est installé, exécutez sudo port selfupdate && sudo port install ffmpeg dans le Terminal, et saisissez votre mot de passe. Une fois que c'est fait, cet AppleScript devrait maintenant fonctionner :

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

Ceci combinera les déclarations dans la liste au fichier que vous spécifiez dans la variable finished_filename. Vous pouvez ajouter autant de "say" que vous le souhaitez, il suffit de respecter la même syntaxe que celle que j'ai utilisée (sauvegarde dans le nouveau_temp_file()) et vous serez prêt à partir !

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X