Skip to content

Commit

Permalink
update speed
Browse files Browse the repository at this point in the history
  • Loading branch information
Artrajz committed Apr 23, 2024
1 parent 6a71703 commit 0414037
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 22 deletions.
9 changes: 2 additions & 7 deletions gpt_sovits/gpt_sovits.py
Original file line number Diff line number Diff line change
Expand Up @@ -449,18 +449,13 @@ def audio_postprocess(self, audio: List[torch.Tensor], sr: int, batch_index_list

try:
if speed_factor != 1.0:
audio = self.speed_change(audio, speed_factor=speed_factor, sr=int(sr))
from .utils import speed_change
audio = speed_change(audio, speed_factor=speed_factor, sr=int(sr))
except Exception as e:
logging.error(f"Failed to change speed of audio: \n{e}")

return audio

def speed_change(self, input_audio: np.ndarray, speed_factor: float, sr: int):
# 变速处理
processed_audio = librosa.effects.time_stretch(input_audio, rate=speed_factor)

return processed_audio

def infer(self, text, lang, reference_audio, reference_audio_sr, prompt_text, prompt_lang, top_k, top_p,
temperature, batch_size: int = 5, batch_threshold: float = 0.75, split_bucket: bool = True,
return_fragment: bool = False, speed_factor: float = 1.0, seed: int = -1,
Expand Down
43 changes: 38 additions & 5 deletions gpt_sovits/utils.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
"""
改用librosa。
(不是ffmpeg不好用,而是少装一个软件更有性价比)
"""
import logging
import subprocess

import librosa
import numpy as np

import config


class DictToAttrRecursive(dict):
def __init__(self, input_dict):
Expand Down Expand Up @@ -65,3 +64,37 @@ def __delattr__(self, item):
# raise RuntimeError(f"Failed to load audio: {e}")
#
# return np.frombuffer(out, np.float32).flatten()

def speed_change(input_audio: np.ndarray, speed_factor: float, sr: int):
"""这里修改为使用原数据float32变速,GPT-SoVITS官方为int16"""

raw_audio = input_audio.tobytes()

ffmpeg_command = [
# f'{config.abs_path}/bin/ffmpeg',
'ffmpeg',
'-f', 'f32le',
'-ar', str(sr),
'-ac', '1',
'-i', 'pipe:',
'-filter:a', f'atempo={speed_factor}',
'-f', 'f32le',
'-acodec', 'pcm_f32le',
'pipe:'
]
try:
ffmpeg_process = subprocess.Popen(
ffmpeg_command,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE
)
out, info = ffmpeg_process.communicate(input=raw_audio)
except Exception as e:
logging.error(e)
logging.error(info)

# 将管道输出解码为 NumPy 数组
processed_audio = np.frombuffer(out, np.float32)

return processed_audio
4 changes: 2 additions & 2 deletions tts_app/static/js/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ function getLink() {
temperature = document.getElementById('input_temperature4').value;
batch_size = document.getElementById('input_batch_size4').value;
seed = document.getElementById('input_seed4').value;
// speed = document.getElementById('input_speed4').value;
speed = document.getElementById('input_speed4').value;
url += "/voice/gpt-sovits?id=" + id;

} else {
Expand Down Expand Up @@ -317,7 +317,7 @@ function setAudioSourceByPost() {
top_p = $("#input_top_p4").val();
temperature = $("#input_temperature4").val();
batch_size = $("#input_batch_size4").val();
// speed = $("#input_speed4").val();
speed = $("#input_speed4").val();
seed = $("#input_seed4").val();

}
Expand Down
16 changes: 8 additions & 8 deletions tts_app/templates/pages/gpt_sovits.html
Original file line number Diff line number Diff line change
Expand Up @@ -93,14 +93,14 @@
placeholder="5"/>
</div>

{# <div class="col-md-2 mb-3">#}
{# <label for="speed" data-toggle="tooltip" data-placement="top"#}
{# title="">speed</label>#}
{# <input type="text" class="form-control speed" id="input_speed4"#}
{# oninput="updateLink()"#}
{# value=""#}
{# placeholder="1.0"/>#}
{# </div>#}
<div class="col-md-2 mb-3">
<label for="speed" data-toggle="tooltip" data-placement="top"
title="调节语速,speed越大语速越快">speed</label>
<input type="text" class="form-control speed" id="input_speed4"
oninput="updateLink()"
value=""
placeholder="1.0"/>
</div>

</div>
<div class="row">
Expand Down

0 comments on commit 0414037

Please sign in to comment.