cosyvocie 自回归模型忽大忽下问题解决方案

问题

大家在使用 cosy voice 自回归模型时(sft 模型)时,可能遇到声音忽大忽小现象。

解决方案

在生成音频之前,加上标准话音频响度即可。

import pyloudnorm as pyln
import numpy as np
from cosyvoice.cli.cosyvoice import CosyVoice
import torch
import torchaudio


def _norm_loudness(audio, rate):
     """
     标准化音频响度
     :param audio: 音频数据,可以是 PyTorch 张量或 NumPy 数组
     :param rate: 采样率
     :return: 标准化后的音频数据,PyTorch 张量
     """
     if isinstance(audio, torch.Tensor):
         audio = audio.numpy()
     if audio.ndim == 2:
         audio = audio.squeeze()
     meter = pyln.Meter(rate)
     loudness = meter.integrated_loudness(audio)
     normalized_audio = pyln.normalize.loudness(audio, loudness, -16.0)
     return torch.from_numpy(normalized_audio)

def prepare_audio(audio):
    """
    准备音频数据
    :param audio: 音频数据
    :return: 标准化后的音频数据
    """
    if audio.ndim == 1:
        audio = audio.unsqueeze(0)
    return _norm_loudness(audio, 22050)


wav_list = []
cosyvoice = CosyVoice("./pretrained_models/CosyVoice-300M-SFT")
output = cosyvoice.inference_sft(line, "旁白")
tts_speech = prepare_audio(output["tts_speech"])
wav_list.append(tts_speech)
wav_list = [wav if wav.ndim == 2 else wav.unsqueeze(0) for wav in wav_list]
wav_list = torch.concat(wav_list, dim=1)
output_path = os.path.join(f"./tmp/{book_name}/gen", f"{book_name}_{idx}.wav")
torchaudio.save(output_path, wav_list, 22050)

参考

https://github.com/FunAudioLLM/CosyVoice/issues/126

相关推荐

  1. cosyvocie 回归模型问题解决方案

    2024-07-14 20:32:01       19 阅读
  2. git已提交的文件夹设置为

    2024-07-14 20:32:01       36 阅读
  3. 回归模型

    2024-07-14 20:32:01       25 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 20:32:01       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 20:32:01       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 20:32:01       57 阅读
  4. Python语言-面向对象

    2024-07-14 20:32:01       68 阅读

热门阅读

  1. k8s之client-go:golang与k8s交互的桥梁

    2024-07-14 20:32:01       22 阅读
  2. 使用harbor作为chart仓库实现内网部署

    2024-07-14 20:32:01       18 阅读
  3. uniapp使用微信登录

    2024-07-14 20:32:01       19 阅读
  4. git patch怎么使用?

    2024-07-14 20:32:01       20 阅读
  5. git 分支介绍

    2024-07-14 20:32:01       20 阅读
  6. Mybatis-plus3.4.3下使用lambdaQuery报错

    2024-07-14 20:32:01       21 阅读
  7. 模拟电路再理解系列(2)-电源滤波电路

    2024-07-14 20:32:01       22 阅读
  8. 【Python】ftplib的使用

    2024-07-14 20:32:01       19 阅读