1、github项目地址Maa2
项目作者提供的样例demo
(如果不能科学上网,参考这里,设置好后可以通过https://huggingface.co/下载模型)
2、环境安装(如果没有安装anaconda3,参考这里,我之前安装后创建过太多环境下载了太多包,差不多80个G了,然后最近环境就乱了,今天也重装了……万能的重装,一切问题都好了)
# 新建环境
conda create -n maa2 python=3.10.6
# pytorch版本
pip install torch2.2.2 torchvision0.17.2 torchaudio==2.2.2 -i “https://pypi.tuna.tsinghua.edu.cn/simple/”
# 安装项目需要的包(如果先安装好pytorch,需要把里面的torch几个包注释,如下图1)
pip install -r requirements.txt -i “https://pypi.tuna.tsinghua.edu.cn/simple/”
3、下载模型相关
1)除了按项目要求准备如下几个外(如下图2),还需要下载google/t5-v1_1-large 模型t5 ,当然,如果你能科学上网,这些个模型一般都会自动下载
注:如果是手动下载t5模型(大文件下载pytorch_model.bin文件就行了,我其他小文件都下载了),则需要修改Make-An-Audio-2/ldm/modules/encoders/modules.py文件151行代码,改成你下载的t5模型的路径(我这里是根目录,如下图3、4),默认如下
class FrozenCLAPFLANEmbedder(AbstractEncoder):
"""Uses the CLAP transformer encoder for text from microsoft"""
def __init__(self, weights_path,t5version="google/t5-v1_1-large", freeze=True, device="cuda", max_length=77): # clip-vit-base-patch32
super().__init__()
model_state_dict = torch.load(weights_path, map_location=torch.device('cpu'))['model']
match_params = dict()
for key in list(model_state_dict.keys()):
if 'caption_encoder' in key:
match_params[key.replace('caption_encoder.', '')] = model_state_dict[key]
config_as_str = files('ldm').joinpath('modules/encoders/CLAP/config.yml').read_text()
args = read_config_as_args(config_as_str, is_config_str=True)
self.clap_tokenizer = AutoTokenizer.from_pretrained(args.text_model) # args.text_model
self.caption_encoder = TextEncoder(
args.d_proj, args.text_model, args.transformer_embed_dim
)
self.t5_tokenizer = T5Tokenizer.from_pretrained(t5version)
self.t5_transformer = T5EncoderModel.from_pretrained(t5version)
2)如果不能科学上网,还需要手动下载bert-base-uncased 模型,大文件需要下载model.safetensors和pytorch_model.bin,我其他小文件都下载了
3)如果出现下面这个异常,则需要下载包
T5Tokenizer requires the SentencePiece library but it was not found ...
pip install SentencePiece
4)想想,还有很重要一个地方要注意,默认下载下来的项目并没有提供bigvgan这个类(不是上面提到的放置包,应该是项目作者忘记上传了),需要从这里下载,vocoder/bigvgan这个就是了,把bigvgan文件侠放到根目录下就行,如果没有搞过Make-An-Audio,估计无从下手,项目作者几乎没有回复……
4、到这里基本就可以推理了,推理文本如下:
python gen_wav.py --scale 4 --duration 10 --save_name gen_wav/test0 --prompt “A man speaks followed by a popping noise and laughter” --struct_prompt “<man speaking& start>@<popping noise& mid>@<laughter& end>”
推理音频结果是test0_0 提取码: 1234
5、后面我测试完声音训练后有空再补充一下……