1 votos

AppleScript a audio

Quiero guardar el siguiente texto hablado en un archivo de audio que pueda reproducir en mi iPod (así que .mp3 o algo así).

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"

Así que todo lo que mi mac dice durante la ejecución de este AppleScript debe ser guardado en un archivo de audio. No quiero 4 archivos de audio diferentes, sino que me gustaría tener un archivo de audio (grande) con todo el audio. ¿Es esto posible?

Gracias de antemano.

0voto

William T Froggard Puntos 2862

Seguro que sí. Prueba esto:

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

Ten en cuenta que tienes que utilizar el formato AIFF, que los iPods sí admiten. Esto lo guardará en su directorio de inicio.

Tienes que instalar FFMPEG para la parte final de este script. Es posible que tenga que instalar las herramientas de desarrollo primero. Ejecuta este comando en el Terminal para comprobarlo:

xcode-select --install

Una vez completado esto, deberías instalar un gestor de paquetes para FFMPEG. Yo personalmente uso MacPorts, así que para eso son estas instrucciones. Instala MacPorts desde aquí , eligiendo la versión correcta para tu sistema operativo. Una vez instalado, ejecute sudo port selfupdate && sudo port install ffmpeg en el Terminal, e introduzca su contraseña. Una vez completado esto, este AppleScript debería funcionar:

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

Esto combinará los dichos de la lista con el archivo que especifiques en la variable nombre_de_archivo_terminado. Puedes añadir todos los "say" que quieras, simplemente mantén la misma sintaxis que yo he utilizado (guardando en new_temp_file()) y ¡estarás listo!

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X