新知榜官方账号
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源码。
相关工具
相关文章
相关快讯
推荐
300美元的AI男友来了!马斯克的情感生意从女友做到男友
2025-08-01 17:56
Agent智能体:2025年企业新员工,月薪仅需一度电?
2025-07-30 17:49
国产GLM-4.5把AI价格打到地板价,实测强到离谱!
2025-07-30 09:08
用AI批量生成治愈系漫画,月入2000+
2025-07-29 09:59
千亿市场规模背后,AI短剧商业化迎来爆发期?
2025-07-17 09:19
15个作品涨粉26万!AI历史账号又出王炸案例!
2025-07-09 09:37
亲测真香!这6个AI工具让工作效率翻倍,同事追着问链接
2025-06-17 16:21
FLUX.1 Kontext 一出,AI生图领域 “地震” 了!
2025-06-06 15:38
用Deepseek写AI绘图提示词,像呼吸一样简单!
2025-02-19 16:12
你以为AI绘画是黑科技?其实早成了“路边摊生意”!
2025-02-19 10:15