Un sitio web de subtítulos de video en línea basado en el modelo de susurro (actualizado continuamente)

1. ¿Qué es un susurro?

Whisper es un sistema de reconocimiento automático de voz (ASR, Automatic Speech Recognition). OpenAI entrenó a Whisper mediante la recopilación de 680 000 horas de datos supervisados ​​multilingües (98 idiomas) y multitarea (multitarea) de Internet. OpenAI cree que el uso de un conjunto de datos tan grande y diverso puede mejorar el reconocimiento de acentos, ruido de fondo y jerga técnica. Además de utilizarse para el reconocimiento de voz, Whisper también puede realizar transcripciones en varios idiomas y traducir esos idiomas al inglés.
Este artículo utiliza principalmente el modelo para realizar una tarea de reconocimiento de audio, convirtiendo el audio del video en texto.

2. Introducción del proyecto

Implementa principalmente una herramienta de generación de subtítulos de video basada en Whisper. Específicamente, utiliza el marco de trabajo de la aplicación WEB liviana Flask para implementar un proyecto WEB con python como back-end y html como front-end. La función es relativamente simple, es decir, sin subtítulos Agregue subtítulos a los videos (solo se admiten chino, inglés, chino e inglés).
El sitio web es como se muestra en la figura:
inserte la descripción de la imagen aquí
la operación es relativamente simple. Haga clic en el botón cargar archivo para cargar un archivo de video local (mp4 o avi), y luego haga clic en el botón Enviar archivo, y el backend comenzará a procesarse. (El proceso de procesamiento de visualización frontal aún no se ha realizado)
Efecto de logro:
chino:
inserte la descripción de la imagen aquí
inglés:
inserte la descripción de la imagen aquí
chino e inglés mezclado:
inserte la descripción de la imagen aquí
el efecto no es malo.

3. Instalación del proyecto

Instale el entorno de python requerido por el proyecto

En primer lugar, la versión de python debe ser superior a 3.9, de lo contrario, se informará un error. Las otras dependencias de python están involucradas en los requisitos.txt en el proyecto y se ejecutan directamente en el entorno de python3.9:

pip install git+https://github.com/openai/whisper.git 
pip install -r requirements.txt

instalar imagemagick

  • Windows
    https://www.imagemagick.org/script/download.php#windows
    Seleccione Instalar encabezados y bibliotecas de desarrollo para C y C++ durante la instalación.
    Después de la instalación, abra el archivo config_defaults.py en el módulo moviepy del entorno virtual de python y modifique IMAGEMAGICK_BINARY a la dirección magick.exe en la carpeta de instalación de imagemagick, como:

IMAGEMAGICK_BINARY = r"D:\python_study_tools\ImageMagick-7.0.9-Q16\magick.exe"

Si olvida la ubicación de instalación, use todo para encontrar la ubicación correspondiente, donde moviepy debe ser el moviepy de su entorno virtual.

  • Ubuntu
    se instala usando el comando:
apt-get install imagemagick

Si se informa un error, actualícelo:

apt-get update

Luego ingrese el comando:

vim /etc/ImageMagick-6/policy.xml

Voluntad

<policy domain="path" rights="none" pattern="@*" />

cambiado a

<!-- <policy domain="path" rights="none" pattern="@*" /> -->

Guardar y Salir

Modificar el formato de fuente en addSubtitles.py

en linea68

txt = (TextClip(sentences, fontsize=32,
                font='SimHei', size=(w-20, 40),
                align='center', color='white')
       .set_position((10, h - 80))
       .set_duration(span)
       .set_start(start))

La fuente que contiene, el código se puede ejecutar normalmente en Windows, no hay problema.
Se informa un error en ubuntu, porque ubuntu carece de muchas codificaciones de bytes chinos. Si no se cambia este lugar, los subtítulos finales del video son todos caracteres confusos y signos de interrogación. La solución:

apt-get install ttf-mscorefonts-installer
apt-get install fontconfig
cd /usr/share/fonts

Luego, seleccione un formato de fuente chino de su ventana y colóquelo en esta carpeta donde
se encuentra el archivo de fuente de Windows: C:\Windows\Fonts
y ejecute el comando:

mkfontscale
mkfontdir
fc-cache -fv

Finalmente, simplemente cambie la fuente en addSubtitles.py arriba a la ruta de la fuente.

4. Ejecutar el proyecto

En Windows o Ubuntu, abra el archivo del proyecto y ejecute el archivo app.py. En Windows, simplemente haga clic en el enlace directamente;
en el servidor, debe definir la dirección y el puerto en app.run() de la función principal, establecer la dirección IP en '0.0.0.0' y
ejecutarlo en la máquina host , necesita navegar Ingrese la IP de la red pública en el navegador (apague la escalera) para acceder, y el enlace generado automáticamente es una red privada.
Si se está ejecutando en la ventana acoplable del servidor, la asignación de puertos debe configurarse al crear la ventana acoplable. Si es un servidor web alquilado, también es necesario verificar qué puertos tcp están abiertos en su servidor web. Si configura el puerto a voluntad, todavía no se puede acceder.

5. Problemas actuales

  • El proyecto se está ejecutando en el servidor. Después de ejecutarse durante un período de tiempo, el proceso se cancelará automáticamente. Por lo tanto, después de acceder y cargar el archivo a través de esa dirección IP, al hacer clic en Enviar archivo se informará un error.
  • Este proyecto no implementa la concurrencia de subprocesos múltiples, por lo que cuando varios usuarios acceden al mismo tiempo, el backend definitivamente no podrá obtener el nombre de archivo correcto e informar un error.
  • El servidor HUAWEI CLOUD alquilado es un servidor de un núcleo con las especificaciones más pequeñas.La velocidad de procesamiento es muy lenta, la capacidad de carga es muy pobre y es fácil fallar
  • El modelo susurro también tiene muchas otras funciones, como reconocimiento directo de voz, reconocimiento de audio en videos y generación de archivos de texto, traducción de voz, etc. La capacidad de funciones del sitio web puede seguir ampliándose
  • Hay un defecto en la función de descarga de la interfaz y no se establecen diferentes enlaces para diferentes descargas de archivos.
  • Los subtítulos y la síntesis de video dependen completamente de la CPU, por lo que si el video es largo y tarda mucho tiempo en ejecutarse, a veces la página web se bloquea antes de terminar de ejecutarse, por lo que no solo se optimizan el procesamiento de back-end y el diseño de front-end.

Dirección del proyecto GitHub: https://github.com/jiangduwang/addSubtitles.git
Dirección de la página web: http://124.70.200.133/
No se garantiza que esta página web se esté ejecutando, incluso si se está ejecutando, es muy probable que habrá errores al enviar los archivos.

¿Por qué es una actualización continua? Debido a que he completado las tareas del curso actual, continuaré resolviendo estos problemas.

Supongo que te gusta

Origin blog.csdn.net/qq_44445108/article/details/127948300
Recomendado
Clasificación