Skip to main content

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

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

alpezacassette-0.5.0-py3-none-any.whl (40.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page