logo
banner
Valoración
Votado0

Narrador Nimi

0
Versión del mod:2
Versión del juego:4.1.1.6897358
El mod ha sido verificado exitosamente y está libre de virus
image

Baldur's Gate 3

Reportar mod

  • image
modalImage

Acerca de este Mod

Este mod permitía que la IA de TTS (Text-to-speech) leyera el diálogo del narrador, que se extrae mediante el programa STT (Speech-to-text)

·˚₊꒷꒦)꒷꒦꒷)꒦ ꒷ ₊º˚·


Nimi Nightmare como el actor de voz de Narrador

Inspirado en Kasada, Wolfdua, Snk4211, Nolester, Xiaokui


Guión de STT:

Desde la unidad de importación de Google.colab
drive.mount('/content/drive')
!pip instalar git+https://github.com/openai/whisper.git
!sudo apt update && sudo apt install ffmpeg

Desde la unidad de importación de Google.colab
drive.mount('/content/drive')
importar SO
importar shutil
hora de importación
Importar re

# Definir el directorio que contiene archivos .wav
audio_dir = "/content/drive/MyDrive/audios"

# Definir el directorio de salida en Google Drive
output_dir = "/content/drive/MyDrive/Narrator_Out_Large"

# Definir el directorio completado en Google Drive
completed_dir = "/content/drive/MyDrive/Completed/audios"

# Contador para archivos procesados
contador = 0

# Obtener el número total de archivos .wav
total_files = len([nombre para nombre en os.listdir(audio_dir) si nombre.endswith(".wav")])

# Función para reemplazar cualquier archivo o carpeta existente
def_replace_existing(ruta):
  Si OS.path.exists(ruta):
    Si OS.path.isfile(ruta):
      os.remove(ruta)
    en caso contrario:
      shutil.rmtree(ruta)

# Crear los directorios de salida y completados si no existen
Para dir en [output_dir, completed_dir]:
  Si no es OS.path.exists(dir):
    OS.Makedirs(dir)

# Compruebe si hay archivos .txt en el directorio de salida que tienen nombres similares a cualquier archivo .wav en el directorio de audio
Para el nombre de archivo en os.listdir(output_dir):
  Si filename.endswith(".txt"):
    wav_file = os.path.join(audio_dir, os.path.splitext(nombreArchivo)[0] + ".wav")
    Si OS.path.exists(wav_file):
      shutil.move(archivo_wav, directorio_completado)

# Compruebe si hay archivos .wav en el directorio completado que no tienen nombres similares a los archivos .txt en el directorio de salida
Para el nombre de archivo en os.listdir(completed_dir):
  Si filename.endswith(".wav"):
    txt_file = os.path.join(output_dir, os.path.splitext(nombreArchivo)[0] + ".txt")
    Si no es OS.path.exists(txt_file):
      shutil.move(os.path.join(completed_dir, nombreArchivo), audio_dir)

# Iterar sobre todos los archivos del directorio
Para el nombre de archivo en os.listdir(audio_dir):
  Si filename.endswith(".wav"):
    # Ruta completa al archivo .wav
    wav_file = os.path.join(audio_dir, nombre de archivo)

    # Intentar transcribir el archivo hasta 5 veces
    Para intento en rango(5):
      Intenta:
        # Transcribir el archivo .wav
        !susurro "$wav_file" --modelo grande

        # Si la transcripción es exitosa, mueva el archivo .txt a Google Drive e imprima un número
        txt_file = "/content/" + os.path.splitext(nombreArchivo)[0] + ".txt"

        # Abrir el archivo de texto transcrito y leer su contenido
        Con open(txt_file, 'r') como archivo:
          datos = archivo.lectura()

        # Reemplazar múltiples "." con un solo "."
        datos = re.sub('\.+', '.', datos)

        # Reemplace los caracteres de nueva línea con un espacio para asegurarse de que el texto transcrito no contenga más de una línea
        data = data.replace('\n', ' ')

        # Escribir el contenido modificado de nuevo en el archivo
        Con open(txt_file, 'w') como archivo:
          archivo.escritura(datos)

        # Reemplazar cualquier archivo o carpeta existente
        replace_existing(os.path.join(output_dir, os.path.basename(txt_file))

        shutil.move(archivo_txt, directorio_salida)

        # Mover el archivo .wav al directorio completado
        shutil.move(archivo_wav, directorio_completado)

        # Imprimir el contador para las transcripciones exitosas junto con el nombre de archivo
        print(f"Número de archivo transcrito correctamente {counter + 1} - {filename}")
        print(f"Contenido transcrito: \n{data}")

        # Si tiene éxito, romper el bucle y pasar al siguiente archivo
        descanso

      Excepto como e:
        print(f"Error al intentar {attempt+1} para {filename}: {e}")

        # Espere un poco antes de intentarlo de nuevo
        Time.Sleep(5)

    # Incrementar el contador para los archivos procesados
    contador += 1

    # Imprimir el porcentaje de progreso
    print(f"Progreso: {round((counter / total_files) * 100, 2)}%")

print("[================== TRANSCRIPCIÓN COMPLETADA =================]")

Mods/Addons similares

Versión del Juego *

4.1.1.6897358 (Nimi Narrator-4113-2-1756183538.rar) Nimi Narrator

4.1.1.6897358 (Full audios pack-4113-1-1699629855.rar) Nimi Narrator (Audio)

4.1.1.6897358 (Narrator voice lines-4113-1-1756091396.rar) Narrator Voice Lines as Text