Skip to content

Latest commit

 

History

History
173 lines (155 loc) · 5.08 KB

README.es.md

File metadata and controls

173 lines (155 loc) · 5.08 KB

Marcador-Elan

Herramienta de análisis de video

en

Introducción

Este programa transforma archivos de audio .wav en un archivo .json, el que contiene palabras del audio pasadas por un filtro. En este caso, el filtro corresponde a una o más letras, que deben estar dentro de la palabra. Esto mediante el uso de la librería whisper-timestamped el cual procesa el audio y selecciona las palabras que contengan las letras elegidas (filtro). El archivo .json de salida contiene las palabras detectadas junto con atributos como el tiempo en el que se detectó la palabra y cuánto dura esta.

Instrucciones de uso

Prerrequisitos

  • Python 3.9 o superior

Instalación

  • Clona este repositorio (O descárgalo como zip):
clone https://github.com/Klefur/Elan-Marker.git
  • Instalación de la librería whisper-timestamped:
pip3 install git+https://github.com/linto-ai/whisper-timestamped
  • Instalar ffmpeg:
    • En Ubuntu o Debian:
    sudo apt update && sudo apt install ffmpeg
    • en Arch Linux:
    sudo pacman -S ffmpeg
    brew install ffmpeg
    choco install ffmpeg
    scoop install ffmpeg
  • Instalar ONNX Runtime:
pip3 install onnxruntime torchaudio
  • Audio backend torchaudio:
    • SoundFile for Windows
    pip install soundfile
    • Sox for Linux/MacOs
    pip install sox
  • moviepy
pip install moviepy
  • pympi
pip install pympi-ling

Preparar archivos

Mover todos los archivos a procesar a la carpeta input Los archivos .mp4 serán transformados a .wav automáticamente, para evitar la conversión se usa la flag --use_wav True

Ejecutar el programa desde la terminal

Abre la consola desde el repositorio clonado. Puedes usar el comando cd

cd ./path/Marcador-Elan

La siguiente línea de comando ejecutará el programa y marcará en la línea de tiempo las palabras que contengan las letras 's' y 'd'

python ./marcador_elan.py

Parámetros:

  • --filters: Lista de strings a filtrar (usar minúsculas)
python ./marcador_elan.py --filters s d asa
  • --input_folder: Carpeta con los archivos de entrada
python ./marcador_elan.py --input_folder mp4_folder
  • --output_folder: Carpeta con los archivos de salida
python ./marcador_elan.py --output_folder elan_folder
  • --save_temp: Guardar archivos temporales
python ./marcador_elan.py --save_temp
  • --use_wav: Saltar la conversión de .wav a .mp4
python ./marcador_elan.py --use_wav
  • --name_model: Seleccionar modelo de conversión
python ./marcador_elan.py --name_model medium
  • --language: Seleccionar el idioma del audio (--help para ver la lista) (default: Spanish)
python ./marcador_elan.py --language en

Los archivos generados se encontrarán en la carpeta output

Reconocimientos

  • whisper-timestamped: Multilingual Automatic Speech Recognition with word-level timestamps and confidence (License AGPL-3.0).
  • whisper: Whisper speech recognition (License MIT).
  • dtw-python: Dynamic Time Warping (License GPL v3).
  • json-to-elan: Tools and scripts for working with ELAN (License Apache-2.0).

Autores:

Lucas Mesías | Joaquín Salidivia | Nicolás Aguilera

Citas de artículos

Si incorporas esto en tu investigación, haz referencia al repositorio como fuente.

@misc{mesias2023marcadorelan,
author = {Mesías, Lucas and Saldivia, Joaquín and Aguilera, Nicolás},
month = {6},
title = {Marcador-elan},
url = {https://github.com/Klefur/Marcador-Elan/},
publisher={GitHub},
year = {2023}
}

Whisper-timestamped:

@misc{lintoai2023whispertimestamped,
  title={whisper-timestamped},
  author={Louradour, J{\'e}r{\^o}me},
  journal={GitHub repository},
  year={2023},
  publisher={GitHub},
  howpublished = {\url{https://github.com/linto-ai/whisper-timestamped}}
}

OpenAI Whisper paper:

@article{radford2022robust,
  title={Robust speech recognition via large-scale weak supervision},
  author={Radford, Alec and Kim, Jong Wook and Xu, Tao and Brockman, Greg and McLeavey, Christine and Sutskever, Ilya},
  journal={arXiv preprint arXiv:2212.04356},
  year={2022}
}

Dynamic-Time-Warping:

@article{JSSv031i07,
  title={Computing and Visualizing Dynamic Time Warping Alignments in R: The dtw Package},
  author={Giorgino, Toni},
  journal={Journal of Statistical Software},
  year={2009},
  volume={31},
  number={7},
  doi={10.18637/jss.v031.i07}
}