- Home-
- Baldur's Gate 3-
- Audio for Baldur's Gate 3-
- Nimi Narrator

Nimi Narrator
Category - Audio for Baldur's Gate 3
0
Mod version:2
Game version:4.1.1.6897358
The mod has been successfully tested for the absence of viruses
About This Mod
This mod let TTS (Text-to-speech) AI read Narrator's dialogue, which extracted by STT (Speech-to-text) program
‧˚₊꒷꒦︶꒷꒦꒷︶꒦꒷₊˚‧
Nimi Nightmare as Narrator's voice actor
Inspired by Kasada, Wolfdua, Snk4211, Nolester, Xiaokuii
Script of STT:
from google.colab import drive
drive.mount('/content/drive')
!pip install git+https://github.com/openai/whisper.git
!sudo apt update && sudo apt install ffmpeg
from google.colab import drive
drive.mount('/content/drive')
import os
import shutil
import time
import re
# Define the directory containing .wav files
audio_dir = "/content/drive/MyDrive/audios"
# Define the output directory in Google Drive
output_dir = "/content/drive/MyDrive/Narrator_Out_Large"
# Define the completed directory in Google Drive
completed_dir = "/content/drive/MyDrive/Completed/audios"
# Counter for processed files
counter = 0
# Get the total number of .wav files
total_files = len([name for name in os.listdir(audio_dir) if name.endswith(".wav")])
# Function to replace any existing file or folder
def replace_existing(path):
if os.path.exists(path):
if os.path.isfile(path):
os.remove(path)
else:
shutil.rmtree(path)
# Create the output and completed directories if they don't exist
for dir in [output_dir, completed_dir]:
if not os.path.exists(dir):
os.makedirs(dir)
# Check if there are .txt files in the output directory that have similar names to any .wav files in the audio directory
for filename in os.listdir(output_dir):
if filename.endswith(".txt"):
wav_file = os.path.join(audio_dir, os.path.splitext(filename)[0] + ".wav")
if os.path.exists(wav_file):
shutil.move(wav_file, completed_dir)
# Check if there are .wav files in the completed directory that don't have similar names to any .txt files in the output directory
for filename in os.listdir(completed_dir):
if filename.endswith(".wav"):
txt_file = os.path.join(output_dir, os.path.splitext(filename)[0] + ".txt")
if not os.path.exists(txt_file):
shutil.move(os.path.join(completed_dir, filename), audio_dir)
# Iterate over all files in the directory
for filename in os.listdir(audio_dir):
if filename.endswith(".wav"):
# Full path to the .wav file
wav_file = os.path.join(audio_dir, filename)
# Attempt to transcribe the file up to 5 times
for attempt in range(5):
try:
# Transcribe the .wav file
!whisper "$wav_file" --model large
# If transcription is successful, move the .txt file to Google Drive and print a number
txt_file = "/content/" + os.path.splitext(filename)[0] + ".txt"
# Open the transcribed text file and read its content
with open(txt_file, 'r') as file:
data = file.read()
# Replace multiple "." with a single "."
data = re.sub('\.+', '.', data)
# Replace newline characters with a space to ensure the transcribed text does not contain more than one line
data = data.replace('\n', ' ')
# Write the modified content back to the file
with open(txt_file, 'w') as file:
file.write(data)
# Replace any existing file or folder
replace_existing(os.path.join(output_dir, os.path.basename(txt_file)))
shutil.move(txt_file, output_dir)
# Move the .wav file to the completed directory
shutil.move(wav_file, completed_dir)
# Print the counter for successful transcriptions along with the filename
print(f"Successfully transcribed file number {counter + 1} - {filename}")
print(f"Transcribed content: \n{data}")
# If successful, break the loop and move on to the next file
break
except Exception as e:
print(f"Failed attempt {attempt+1} for {filename}: {e}")
# Wait for a bit before trying again
time.sleep(5)
# Increment the counter for processed files
counter += 1
# Print the progress percentage
print(f"Progress: {round((counter / total_files) * 100, 2)}%")
print("[================ TRANSCRIPTION COMPLETED ================]")
Similar Mods/Addons
Serana - Substitute for female voice of Astarion3Audio for Baldur's Gate 3Baldur's Gate 3
Replace the voice of Astarion with that of Serana of Skyrim. Version 2.0 is now available!2200
Hulsin Reeves (voice of Halsin)1Audio for Baldur's Gate 3Baldur's Gate 3
Keenu Reeves - Halsin's voice actor010
Amperor (Voice of the Emperor)3Audio for Baldur's Gate 3Baldur's Gate 3
Atrox - The voice actor of the Emperor100
VFX and SFX Remover - Visual and Sound Effects Begone - Longstrider - Hex - Imp Familiar SilencerallAudio for Baldur's Gate 3Baldur's Gate 3
VFX and SFX Remover - Visual and Sound Effects Begone - Longstrider - Hex And MoreAs in Ultimate Gui...100
Main menu. Replacing musicallAudio for Baldur's Gate 3Baldur's Gate 3
Changes the main menu music to another epic track from the game:"The Odds Are Cast Anew" or any of t...200
Substitute for tavern music "Song of the True Elf"allAudio for Baldur's Gate 3Baldur's Gate 3
*Spoiler Ahead*- When I finally got to the legendary Elf Song Tavern, I felt disappointed. Where is...100
Naruto voice preset for Tav3Audio for Baldur's Gate 3Baldur's Gate 3
Replace Voice 2 Preset with Naruto Voice000
Melinaheart4.1.1.6897358Audio for Baldur's Gate 3Baldur's Gate 3
Referenced fromKasada,Wolfdua,Snk4211,Nolester,Xiaokuii,arkienContinute the work ofValkyrie062Thi...000
Gale Sparrow4.1.1.6897358Audio for Baldur's Gate 3Baldur's Gate 3
Jack Sparrow as Gale's voice actorInspired byKasada,Wolfdua,Snk4211,Nolester,Xiaokuii000
Halsin Reeves4.1.1.6897358Audio for Baldur's Gate 3Baldur's Gate 3
Keanu Reeves as Halsin voice's actorInspired byKasada,Wolfdua,Snk4211,Nolester,Xiaokuii100
Early Access Character creation Voice acting restored3Audio for Baldur's Gate 3Baldur's Gate 3
Replacing the voice so that the character says, "Who do you dream about at night?" while creating th...000
Tav's voice replacer4.1.1.6897358Audio for Baldur's Gate 3Baldur's Gate 3
This mod replace your main custom charrater Tav's voice with your favorite actor500
















