Renderizador de dialogos .fountain a audio y video
Project description
Cassette.
Utilidad para pasar guiones escritos en Fountain a audio.
Ejemplos de uso:
- Cargamos un fichero de guión en formato Fountain
cst="corto"
fountain="corto.fountain"
salida="$(pwd)/corto"
cassette run -j load -p "pname=$cst" -p "fountain=$fountain"
- Describimos el guión:
cassette run -j describe -p "pname=$cst"
- Obtenemos el timeline y lo completamos que las pistas que enlazan escenas
cassette run -j gettimeline -p "pname=$cst.cst"
Se puede pasar una plantilla jinja2 para que se genere el timeline. Por ejemplo una como la siguiente:
cassette run -j gettimeline -p "pname=$cst.cst" -p "useDefault=path/to/jinjatemplate.yaml"
tags:
intro: /Dropbox/draft/Gymnopedie.wav
background: /Dropbox/draft/Gymnopedie.wav
end: /Dropbox/draft/Gymnopedie.wav
transition: /Dropbox/draft/Gymnopedie.wav
characters:
- id: 1
voice:
tts:
voiceid: 14
filter:
- delay:
delay_seconds: 0.1
- reverb:
room_size: 0.5
- id: 2
voice:
tts:
voiceid: 14
filter:
- reverb:
room_size: 0.1
- id: 3
voice:
tts:
voiceid: 29
filter:
- reverb:
room_size: 0.1
timeline:
- type: sound
track: intro
duration: 8
volume: inout
{%- for scene in scenes %}
# {{ scene.location }}
- type: scene
scene_id: {{ scene.scene_id }}
background: background
{%- if not loop.last %}
# ...
- type: sound
track: transition
duration: 8
volume: inout
{%- endif %}
{% endfor %}
- type: sound
track: end
duration: 8
volume: inout
video:
{%- for dialogue in dialogues %}
# {{ dialogue.SceneID }} {{ dialogue.CharacterName }}:
# {{ dialogue.FirstWords }} ...
- id: {{ dialogue.DialogueID }}
type: image
imagePath: /Users/alvaroperis/Dropbox/draft/f9/y1.jpeg
{% endfor %}
- Cargamos el timeline al proyecto
cassette run -j loadtimeline -p "pname=$cst" -p "timeline=$cst.cst.yaml"
- Renderizamos los dialogos
cassette run -j renderaudio -p "pname=$cst" -p "storepath=$salida"
- Renderizamos las escenas
cassette run -j renderscene -p "pname=$cst" -p "storepath=$salida"
- Renderizamos el guión completo.
cassette run -j renderrecord -p "pname=$cst" -p "storepath=$salida"
- Renderizado de video
cassette run -j rendervideo -p "pname=$cst" -p "storepath=$salida" -p "audiopath=$salida/film/$cst.mp3"
Configuración del timeline.
Voces
A cada caracter identificado por un id se le puede configurar una voz en voice.tts.voiceid
. Adicionalmete a esta voz se le pueden añadir efectos de audio en la sección filter
.
Estos efectos de audio son algunos de los que ofrece la libreria Spotify Pedalboard.
Se tienen disponibles los siguientes:
Reverb
filter:
...
- reverb:
room_size: 0.5
damping: 0.5
wet_level: 0.33
dry_level: 0.4
width: 1.0
freeze_mode: 0.0
Distorsion
filter:
...
- distortion:
drive_db: 25
Delay
filter:
...
- delay:
delay_seconds: 0.5
feedback: 0.0
mix: 0.5
Gain
filter:
...
- gain:
gain_db: 1.0
EJEMPLO:
characters:
# PEDRO
- id: 1
voice:
tts:
voiceid: 14
filter:
- delay:
delay_seconds: 0.5
- distortion:
drive_db: 25
- reverb:
room_size: 0.1
# MARIA
- id: 2
voice:
tts:
voiceid: 29
filter:
- reverb:
room_size: 0.1
Voces
La voz se ha de setear con el id. El id puede variar según sistema operativo. Para MACOS es el > siguiente:
Genero | ID | Nombre | Lengua |
---|---|---|---|
VoiceGenderFemale | 29 | Monica | ['es_ES'] |
VoiceGenderFemale | 31 | Paulina | ['es_MX'] |
VoiceGenderFemale | 37 | Tessa | ['en_ZA'] |
VoiceGenderMale | 14 | Jorge | ['es_ES'] |
VoiceGenderMale | 15 | Juan | ['es_MX'] |
VoiceGenderMale | 8 | Diego | ['es_AR'] |
Timeline
Escena
- type: scene
scene_id: 1
background: bg
Transición
- type: sound
track: sound1
duration: 8
volume: inout
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for alpezacassette-0.5.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0370a9e401d72fa50135059e3b8618f8202b219c47e3db183f63b0e7e61ba3e6 |
|
MD5 | 6701cdc33ec667a4f8a1a95e7309d751 |
|
BLAKE2b-256 | ccc408f086890226c818d0dbbbfc63424af61ef4f4ccab6002a072b946d435e4 |