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 details)

Uploaded Python 3

File details

Details for the file alpezacassette-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: alpezacassette-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 40.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/6.0.0 pkginfo/1.7.0 requests/2.28.2 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.16

File hashes

Hashes for alpezacassette-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0370a9e401d72fa50135059e3b8618f8202b219c47e3db183f63b0e7e61ba3e6
MD5 6701cdc33ec667a4f8a1a95e7309d751
BLAKE2b-256 ccc408f086890226c818d0dbbbfc63424af61ef4f4ccab6002a072b946d435e4

See more details on using hashes here.

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