新知榜官方账号
2023-11-01 08:42:27
近年来,包括语言模型在内的生成式人工智能模型取得了巨大进步,特别是ChatGPT的发布,让大家看到了大语言模型的魅力。无论是计算机视觉,还是nlp领域的文本描述生成各种图像和视频,到执行机器翻译,文本生成等等大模型上,其都取得了令人意想不到的发展。但音乐与音频上似乎总是有点落后。是否可以使用人工智能技术来合成不同的音乐或者音效?
AudioCraft包含三个模型:MusicGen、AudioGen和EnCodec。MusicGen:使用Meta拥有且专门授权的音乐进行训练,根据用户输入的文本生成音乐。AudioGen使用公共音效进行训练,根据用户输入的文本生成音频音效。EnCodec解码器,它可以用更少的音损生成更高质量的音乐,类似音频压缩技术。EnCodec是一种有损神经编解码器,经过专门训练,可以压缩任何类型的音频并以高保真度重建原始信号。AudioCraft系列模型能够产生具有长期一致性的高质量音频,并且可以通过UI界面轻松交互。
通过AudioCraft,简化了音频生成模型的整体设计,我们可以直接利用开源代码进行音乐的生成。
%cd/content!gitclonehttps://github.com/facebookresearch/audiocraft%cd/content/audiocraft!pipinstall-rrequirements.txt!python-mdemos.musicgen_app--share
我们可以直接使用以上代码生成一个可视化的UI界面,我们只需要在输入框中,输入相应的文本,就可以利用模型生成音乐了。为了方便开发者使用AudioCraft,模型已经开源,且我们可以直接使用开源的代码进行音乐的合成。
!python3-mpipinstall-Ugit+https://github.com/facebookresearch/audiocraft#egg=audiocraftfromaudiocraft.modelsimportmusicgenfromaudiocraft.utils.notebookimportdisplay_audioimporttorchmodel=musicgen.MusicGen.get_pretrained('medium',device='cuda')model.set_generation_params(duration=8)res=model.generate(['crazyEDM,heavybang','classicreggaetrackwithanelectronicguitarsolo','lofislowbpmelectrochillwithorganicsamples','rockwithsaturatedguitars,aheavybasslineandcrazydrumbreakandfills.','earthytones,environmentallyconscious,ukulele-infused,harmonic,breezy,easygoing,organicinstrumentation,gentlegrooves',],progress=True)display_audio(res,32000)
模型下载完成后,我们就可以使用model.generate函数来生成音乐了,这里可以一次输入多个文本,模型会自动根据输入的文本,生成多个音频文件,最后,我们可以display或者下载生成好的音乐文件。
当然此模型已经发布在huggingface的transformers库中,我们也可以直接使用transformers库来运行此代码。
pipinstallgit+https://github.com/huggingface/transformers.gitfromtransformersimportAutoProcessor,MusicgenForConditionalGenerationprocessor=AutoProcessor.from_pretrained("facebook/musicgen-small")model=MusicgenForConditionalGeneration.from_pretrained("facebook/musicgen-small")inputs=processor(text=["80spoptrackwithbassydrumsandsynth","90srocksongwithloudguitarsandheavydrums"],padding=True,return_tensors="pt",)audio_values=model.generate(**inputs,max_new_tokens=256)
当然,这里我们不需要安装AudioCraft,而是安装transformers库,然后从transformers库中导入相关的AudioCraft应用。然后也是加载相关的模型文件,并输入需要生成的音乐文本,最后就可以使用model.generate函数来生成音乐文件了。
fromIPython.displayimportAudiosampling_rate=model.config.audio_encoder.sampling_rateAudio(audio_values[0].numpy(),rate=sampling_rate)importscipysampling_rate=model.config.audio_encoder.sampling_ratescipy.io.wavfile.write("musicgen_out.wav",rate=sampling_rate,data=audio_values[0,0].numpy())
生成好的音乐文件,我们可以使用以上函数进行播放或者进行存储,方便后期进行处理操作。当然以上的代码都是MusicGen音乐生成的代码实现,其他AudioGen和EnCodec的代码实现过程,可以参考GitHub源码。
相关工具
相关文章
相关快讯
推荐
中国首款3A游戏上线,《黑神话:悟空》出圈!
2024-08-21 13:46
盘点15款AI配音工具,短视频配音有救了!
2024-08-12 17:11
短视频文案没创意?10大AI写作工具来帮你!
2024-08-05 16:23
Midjourney发布V6.1版本,我已分不清AI和现实了!
2024-08-01 15:03
我发现了一款国产AI绘画神器,免费易上手!
2024-07-25 16:40
7位AI考生做今年高考题,能过一本线吗?
2024-07-19 17:17
世界上第一所AI学校来了,80亿人只需要1位老师?
2024-07-18 17:12
Sora首部AI广告片上线,广告从业者危险了!
2024-06-27 13:44
OpenAI与中国说拜拜,国产AI如何接棒?
2024-06-26 15:18
人与AI会产生爱情吗,专家发话了!
2024-06-17 17:28