audio_edit / examples /concat /concat_three_and_adapt_volume.py
HoneyTian's picture
update
ba051ef
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import argparse
import shutil
from gradio_client import Client, handle_file
import numpy as np
from scipy.io import wavfile
# language1 = "英语"
# language2 = "English"
# language1 = "西班牙语"
# language2 = "Spanish"
language1 = "日语"
language2 = "Japanese"
# language1 = "葡萄牙语"
# language2 = "Portuguese"
# language1 = "韩语"
# language2 = "Korean"
# language1 = "阿拉伯语"
# language2 = "Arabic"
# language1 = "中国台湾"
# language2 = "Chinese"
def get_args():
parser = argparse.ArgumentParser()
parser.add_argument(
"--filename1",
default=rf"E:\牛信文档\语音克隆\多语种语音克隆\money_num\{language1}\{language2}_1.wav",
type=str,
)
parser.add_argument(
"--filename2",
default=rf"E:\牛信文档\语音克隆\多语种语音克隆\money_num\{language1}\xtts_v2_{language2.lower()}_2.wav",
type=str,
)
parser.add_argument(
"--filename3",
default=rf"E:\牛信文档\语音克隆\多语种语音克隆\money_num\{language1}\{language2}_3.wav",
type=str,
)
parser.add_argument(
"--output_adapt_file",
default=rf"E:\牛信文档\语音克隆\多语种语音克隆\money_num\{language1}\xtts_v2_{language2.lower()}_2_volume_adapt.wav",
type=str,
)
parser.add_argument(
"--output_concat_file",
default=rf"E:\牛信文档\语音克隆\多语种语音克隆\money_num\{language1}\xtts_v2_{language2.lower()}_2_concat.wav",
type=str,
)
args = parser.parse_args()
return args
def main():
args = get_args()
# client = Client("http://10.75.27.247:7861/")
client = Client("http://127.0.0.1:7861/")
new_filename2, _ = client.predict(
audio_t=handle_file(args.filename2),
radio=1,
decibel=0,
reference=handle_file(args.filename3),
engine="by_pydub_by_reference",
api_name="/when_click_change_volume"
)
new_filename2, _, _, _ = client.predict(
audio_t=handle_file(new_filename2),
to_sample_rate=8000,
sample_width=2,
channels="0",
engine="librosa",
api_name="/when_click_audio_convert"
)
_, signal1 = wavfile.read(args.filename1)
_, signal2 = wavfile.read(new_filename2)
_, signal3 = wavfile.read(args.filename3)
signal = np.concat([signal1, signal2, signal3], axis=0)
shutil.move(
new_filename2,
args.output_adapt_file
)
wavfile.write(
args.output_concat_file,
8000,
signal,
)
return
if __name__ == '__main__':
main()