派蒙旁白

派蒙旁白

是派蒙!!相信我兄弟,这并不尴尬,我保证

[size=6][font=Courier New][b]许可[/b][/font][/size]

[spoiler]
[quote][font=Courier New]Corina Boettger,曾任《[i]原神[/i]》中派蒙的英语配音演员(直至 2025 年中期约 5.7 版本),没有公开记录明确表示允许或拒绝粉丝在非商业、娱乐性质的内容(例如游戏配音模组,如截取派蒙音频片段来替换《上古卷轴 5:天际》《索尼克》模组或其他粉丝项目中的对话)中使用她现有的语音台词。
[/font]
[list]
[][font=Courier New]使用她从《[i]原神[/i]》中截取音频制作的粉丝配音模组已存在多年,未曾有她投诉、发出停止侵权通知或公开反对的报道。例如 GameBanana 或 Nexus Mods 等网站上的派蒙语音包,通常在各社区中分享且未引发问题。[/font][/]
[][font=Courier New]她曾公开反对未经授权使用 AI 复制她的声音(或任何表演者的声音),这与 SAG-AFTRA 为争取 AI 保护而进行的罢工行动一致。这源于更广泛的行业担忧,而非传统的粉丝模组。她于 2025 年离开该角色,部分原因是与 HoYoverse 的合同纠纷,包括付款延迟和工会相关问题,但这并未涉及粉丝内容。[/font][/]
[][font=Courier New]配音演员通常容忍(或鼓励)非商业性的、复用官方音频的粉丝模组,将其视为合理使用的转换性作品,前提是不盈利并在适当情况下注明出处。Boettger 未加反对也符合这一模式。[/font][/]
[/list][font=Courier New]综上所述,是的——她实际上允许将其用于娱乐性的截取音频模组,因为没有禁止的证据。如果模组涉及未经同意使用 AI 生成模仿她声音的新台词,基于她反 AI 的立场,她会反对。
来源:[i][b]Boettger X 帖子、SAG-AFTRA AI 罢工、原神模组社区、配音演员访谈、[url=https://grok.com/share/c2hhcmQtMw%3D%3D_e7d81312-4773-4ad3-8101-5e7cde515fde][b]Grok[/b][/url][/b][/i][/font][/quote][/spoiler]
[center][/center]
[font=Courier New][size=6][b]安装[/b][/size][/font]
拖入 [url=https://github.com/LaughingLeader/BG3ModManager]BG3ModManager[/url]

[font=Courier New][size=6][b]描述[/b][/size][/font]
来自《原神》的派蒙将朗读旁白的语音台词
基于 >>[url=https://www.nexusmods.com/baldursgate3/mods/4071][u]女性版本[/u][/url]<< 制作
将旁白的笑声替换成了特别的东西

[center][size=3][color=#00ff00][font=Comic Sans MS][u][youtube]lpkRQwJsggM[/youtube]
此模组[/u] 让 [url=https://www.bing.com/search?q=text+to+speech+wiki&amp;qs=n&amp;form=QBRE&amp;sp=-1&amp;ghc=1&amp;lq=0&amp;pq=text+to+speech+wiki&amp;sc=10-19&amp;sk=&amp;cvid=FC3C5AC1CD764D56AC0F0B40331800A6&amp;ghsh=0&amp;ghacc=0&amp;ghpl=][color=#00ff00][u]TTS[/u][/color][/url](文本转语音)AI 朗读[u]旁白的对话,[/u][u]这些对话[/u]由 [u][url=https://www.bing.com/search?q=speech+to+text+wiki&amp;qs=n&amp;form=QBRE&amp;sp=-1&amp;lq=0&amp;pq=speech+to+text+wiki&amp;sc=10-19&amp;sk=&amp;cvid=026CA5F8A4304454BAE1130338A3D58C&amp;ghsh=0&amp;ghacc=0&amp;ghpl=][color=#00ff00]STT[/color][/url][/u](语音转文本)程序提取
[size=3][color=#00ff00]‧˚₊꒷꒦︶꒷꒦꒷︶꒦꒷₊˚‧[/color][/size][/font][/color][/size][/center]

[font=Courier New][size=3][b]STT 脚本(Google Colaboratory):[/b][/size][/font]
[spoiler][quote]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 ================]")[/quote][/spoiler]


[url=https://ko-fi.com/thma2908][img]https://i.imgur.com/8X3qisL.png[/img]
[/url] [url=https://paypal.me/thma2908?country.x=VN&amp;locale.x=vi_VN][img]https://i.imgur.com/ZpFswny.png[/img]

[/url]
[url=https://www.patreon.com/cw/ToxicDrake][/url]