新知榜官方账号
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源码。
相关工具
相关文章
相关快讯
推荐
用Deepseek写AI绘图提示词,像呼吸一样简单!
2025-02-19 16:12
你以为AI绘画是黑科技?其实早成了“路边摊生意”!
2025-02-19 10:15
Flux爆火,全网最全面最详细的Flux使用教程!
2025-02-18 14:19
用AI如何创作音乐,实战教学来啦!
2025-02-17 17:23
MidJourney让你秒变绘画大神,从零开始画哪吒!
2025-02-17 14:56
AI应用新境界:让人工智能成为你的得力助手
2025-02-14 15:45
AI短片革命:当创作遇上智能,人人都能成为导演
2025-02-14 14:53
AI狂潮下的人类职场:是失业危机还是进化契机?
2025-02-13 16:53
开启影视创作新纪元,效率提升 10 倍的神器来了!
2025-02-13 15:11
深度解析DeepSeek:当AI技术照进创作产业的未来
2025-02-12 17:16