logo
banner
Рейтинг
Голоса0

Ними Рассказчик

0
Версия мода:2
Версия игры:4.1.1.6897358
Mод успешно проверен на отсутствие вирусов
image

Baldur's Gate 3

Репорт мод

  • image
modalImage

Об этом моде

Этот мод позволяет TTS (преобразование текста в речь) AI читать диалог экранного диктора, который извлекается программой STT(преобразование речи в текст)

·°₊꒷꒦)꒷꒦꒷)꒦꒷₊°·


Ними Кошмар — актёр озвучивания экранного диктора

Вдохновленные Касадой, Вольфдуа, Snk4211, Nolester, Xiaokuii


Сценарий STT:

с диска импорта google.colab
drive.mount('/content/drive')
!pip install git+https://github.com/openai/whisper.git
!sudo apt update && sudo apt install ffmpeg

с диска импорта google.colab
drive.mount('/content/drive')
импорт ос
импорт shutil
время импорта
импорт re

# Определите каталог, содержащий WAV-файлы
audio_dir = «/content/drive/MyDrive/audios»

# Определить выходной каталог в Google Drive
output_dir = «/content/drive/MyDrive/Narrator_Out_Large»

# Определите заполненный каталог в Google Диске
completed_dir = «/content/drive/MyDrive/Completed/audios»

# Счетчик обработанных файлов
счетчик = 0

# Получить общее число WAV-файлов
total_files = len([имя для имени в os.listdir(audio_dir) if name.endswith(».wav»)])

# Функция для замены существующего файла или папки
def replace_existing(путь):
  если os.path.exists(путь):
    если os.path.isfile(путь):
      os.remove(путь)
    иначе:
      shutil.rmtree(путь)

# Создать выходные и завершенные каталоги, если они не существуют
для dir в [output_dir, completed_dir]:
  если не os.path.exists(dir):
    os.makedirs(dir)

# Проверьте, есть ли в выходном каталоге файлы с расширением .txt, имена которых похожи на имена любых файлов с расширением .wav в аудиокаталоге
для имени файла в os.listdir(output_dir):
  если filename.endswith(».txt»):
    wav_file = os.path.join(audio_dir, os.path.splitext(имя файла)[0] + «.wav»)
    если os.path.exists(wav_file):
      shutil.move(wav_file, completed_dir)

# Проверьте наличие WAV-файлов в завершенном каталоге, имена которых не совпадают с именами файлов TXT в выходном каталоге
для имени файла в os.listdir(completed_dir):
  если filename.endswith(».wav»):
    txt_file = os.path.join(output_dir, os.path.splitext(имя файла)[0] + «.txt»)
    если не os.path.exists(txt_file):
      shutil.move(os.path.join(completed_dir, имя файла), audio_dir)

# Просмотрите все файлы в каталоге
для имени файла в os.listdir(audio_dir):
  если filename.endswith(».wav»):
    # Полный путь к WAV-файлу
    wav_file = os.path.join(audio_dir, имя файла)

    # Пытаться записать файл до 5 раз
    для попытки в диапазоне(5):
      попробуйте:
        # Транскрипция WAV-файла
        !шёпот «$wav_file» —модель большая

        # Если транскрипция прошла успешно, переместите файл .txt в Google Drive и напечатайте номер
        txt_file = «/content/» + os.path.splitext(имя файла)[0] + «.txt»

        # Откройте транскрибируемый текстовый файл и прочитайте его содержимое
        с open(txt_file, 'r') в качестве файла:
          данные = file.read()

        # Замените несколько «.» на один «.»
        данные = re.sub('\.+', '.', данные)

        # Замените символы новой строки пробелом, чтобы транскрибируемый текст не содержал более одной строки
        данные = data.replace('\n', ' ')

        # Записать измененное содержимое обратно в файл
        с open(txt_file, 'w') в качестве файла:
          file.write(данные)

        # Заменить существующий файл или папку
        replace_existing(os.path.join(output_dir, os.path.basename(txt_file))

        shutil.move(txt_file, output_dir)

        # Переместите WAV-файл в завершенный каталог
        shutil.move(wav_file, completed_dir)

        # Выведите счетчик успешных транскрипций вместе с именем файла
        print(f»Успешно расшифрован номер файла {counter + 1} - {filename}»)
        print(f»Транскрибированное содержимое: \n{data}»)

        # В случае успеха разорвать цикл и перейти к следующему файлу
        разрыв

      кроме исключения как:
        print(f»Неудачная попытка {try+1} для {filename}: {e}»)

        # Подождите немного и повторите попытку
        время.сон(5)

    # Увеличьте значение счетчика для обрабатываемых файлов
    счетчик += 1

    # Печать процента выполнения
    print(f»Ход выполнения: {round((счетчик / всего_файлов) * 100, 2)}%»)

print(»[ТРАНСКРИПЦИЯ ================ ЗАВЕРШЕНА ================]»)

Похожие Моды/Аддоны

Версия игры *

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