首页 > 其他分享 >用AI打造一个属于自己的歌手,让她C位霸气出道

用AI打造一个属于自己的歌手,让她C位霸气出道

时间:2023-10-27 09:34:55浏览次数:30  
标签:AI 歌手 C# Gb4 Ab4 Bb4 Db4 霸气

一、前言

今天玩儿点儿特别的,AI大行其道的今天,还没玩过AI模型的程序员绝对不是个好厨子。我本人比较喜欢音乐,但是一直没有出道,很是遗憾。那么今天,我就使用AI模型亲手打造一个堪比真人的歌手,让她C位霸气出道。

首先,让这位女歌手露一嗓子:点我试听

唱的还不错吧,接下来咱们来分析这位歌手是如何打造出来的。

二、技术

飞桨(PaddlePaddle)以百度多年的深度学习技术研究和业务应用为基础,集深度学习核心框架、基础模型库、端到端开发套件、工具组件和服务平台于一体,2016 年正式开源,是全面开源开放、技术领先、功能完备的产业级深度学习平台。

上面的介绍是不是很唬人?从百度飞桨官网贴过来的。显然,本文使用的技术是基于百度飞桨框架打造,当然了,你要让我从零开始搞AI......那我还是选择当厨子。

飞桨Hub(PaddleHub)是基于PaddlePaddle生态下的预训练模型,旨在为开发者提供丰富的、高质量的、直接可用的预训练模型。

说白了,这个飞桨Hub是模型集中营,提供了很多已经训练好的模型,用户可以拿来直接使用,而不需要再耗费过多的精力、资源去自己训练模型。

Python,飞桨平台基于Python语言实现,不必多说了,毕竟,Python是世界上最好的语言.java。

Anaconda,是一个常用的python包管理程序,可以方便的管理我们的多个Python环境。比如你的A软件需要基于Python3.7,B软件需要基于Python3.8,用Anaconda可以方便的对不同的环境进行管理和切换。

三、环境搭建

1、安装Anaconda

到官网https://www.anaconda.com/或者https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/下载一个较新的版本即可。

安装过程很简单,猛点下一步即可,建议你安装到C盘之外的盘。

即便你装在了D盘,但是创建环境的时候,环境信息默认还是会被创建到C盘,所以还应该做如下操作:

编辑C:\Users\你的用户名\.condarc文件(如果没有此文件请手动创建),文件内容如下:

channels:
  - defaults
envs_dirs: [D:\anaconda3\envs]
pkgs_dirs: [D:\anaconda3\pkgs]

这样环境信息就会被保存在D盘了。

2、创建Python环境

找到刚刚安装的anaconda,打开Anaconda Prompt命令行工具,执行如下语句:

conda create --name paddle_env python=3.8 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

以上代码表示,创建一个Python3.8的环境,环境名称为paddle_env,软件源从https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ 地址下载。

3、安装百度飞桨环境

输入如下命令,表示接下来的所有操作,我要在刚才创建的那个名为paddle_env的环境中进行:

conda activate paddle_env

输入如下命令,表示安装百度飞桨基础环境:

pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple

输入如下命令,表示安装百度飞桨Hub:

pip install paddlehub -i https://mirror.baidu.com/pypi/simple

最后,我们再新建一个环境变量HUB_HOME。因为paddlehub的模型下载安装时,会默认装在c盘。我们将HUB_HOME指到其他的磁盘即可。

四、安装模型

上面将基础环境搭建好了,接下来我们安装语音合成模型Diffsinger。

DiffSinger,一个基于扩散概率模型的 SVS 声学模型。DiffSinger 是一个参数化的马尔科夫链,它可以根据乐谱的条件,迭代地将噪声转换为旋律谱。通过隐式优化变异约束,DiffSinger 可以被稳定地训练并产生真实的输出。

上面在说什么,我也看不太懂。但通俗的说,这个模型可以将乐谱转换为旋律谱。

首先,这个模型依赖如onnxruntime包,我们通过如下命令进行安装:

pip install onnxruntime -i https://mirror.baidu.com/pypi/simple

然后,我们安装Diffsinger模型:

hub install diffsinger==1.0.0

五、创造歌手

目前万事俱备,我们开始创造歌手。

首先我们看这个模型的调用参数是怎样的:

inputs (Dict[str, str]): 输入数据格式如下;
{
  'text': '小酒窝长睫毛AP是你最美的记号',
  'notes': 'C#4/Db4 | F#4/Gb4 | G#4/Ab4 | A#4/Bb4 F#4/Gb4 | F#4/Gb4 C#4/Db4 | C#4/Db4 | rest | C#4/Db4 | A#4/Bb4 | G#4/Ab4 | A#4/Bb4 | G#4/Ab4 | F4 | C#4/Db4',
  'notes_duration': '0.407140 | 0.376190 | 0.242180 | 0.509550 0.183420 | 0.315400 0.235020 | 0.361660 | 0.223070 | 0.377270 | 0.340550 | 0.299620 | 0.344510 | 0.283770 | 0.323390 | 0.360340',
  'input_type': 'word'
}
sample_num (int): 生成音频的数量;
save_audio (bool): 是否保存音频文件;
save_dir (str): 保存处理结果的文件目录。

其中需要以下说明:

text:就是指要唱的歌曲歌词;

notes:表示歌词对应的曲谱;

notes_duration:表示歌词中每个字要唱的时长;

接下来,我们准备以下Python代码:

import paddlehub as hub

module = hub.Module(name="diffsinger")
results = module.singing_voice_synthesis(
  inputs={
    'text': '小酒窝长睫毛AP是你最美的记号',
    'notes': 'C#4/Db4 | F#4/Gb4 | G#4/Ab4 | A#4/Bb4 F#4/Gb4 | F#4/Gb4 C#4/Db4 | C#4/Db4 | rest | C#4/Db4 | A#4/Bb4 | G#4/Ab4 | A#4/Bb4 | G#4/Ab4 | F4 | C#4/Db4',
    'notes_duration': '0.407140 | 0.376190 | 0.242180 | 0.509550 0.183420 | 0.315400 0.235020 | 0.361660 | 0.223070 | 0.377270 | 0.340550 | 0.299620 | 0.344510 | 0.283770 | 0.323390 | 0.360340',
    'input_type': 'word'
  },
  sample_num=1,
  save_audio=True,
  save_dir='./outputs'
)

我们执行以上脚本:

python test.py

最终生成了开头贴出的唱段。

上面生成的是翻唱歌曲。接下来,我们再为歌手写一首原创主打歌曲,鄙人不才作词如下哈哈:

双手敲下黑白键盘,这首音乐你是否会喜欢

作曲可难倒我了,我打算找AI来帮忙,找百度文心一言生成以下曲谱:

C#4/Db4 | F#4/Gb4 | G#4/Ab4 | A#4/Bb4 | F#4/Gb4 | F4/G4 | C#4/Db4 | C#4/Db4 | rest | C#4/Db4 | A#4/Bb4 | G#4/Ab4 | F#4/Gb4 | C#4/Db4 | G#4/Ab4 | A#4/Bb4 | G#4/Ab4 | F#4 | C#4/Db4

每个字的持续时间瞎编一下:

0.407140 | 0.376190 | 0.242180 | 0.509550 | 0.183420 | 0.315400 0.235020 | 0.361660 | 0.223070 | 0.377270 | 0.340550 | 0.299620 | 0.344510 | 0.283770 | 0.323390 | 0.360340 | 0.509550 | 0.183420 | 0.315400 0.235020 | 0.661660

 重新执行Python脚本,主打歌生成了:点我试听

六、结语

AI大时代,AI技术每个人都可以触手可及,程序员群体更是近水楼台,最起码可以起到自我娱乐的效果。

我们可以将以上技术部署到服务器,做成网站、小程序、APP等,借助AI平台的能力,实现自动生成歌词,自动生成曲谱,自动生成唱段等,实现全民娱乐。

作为一个程序员,云服务器现在应该是标配了,学生可以用来学习,菜鸟可以用来练手,老鸟玩点有趣的东西偶尔赚点小钱。你如果想买一台云服务器来玩儿,下面是直达腾讯云优惠专区的链接:

https://cloud.tencent.com/act/cps/redirect?redirect=5186&cps_key=814b8b5d55ef58acc94a1b6bf43d5a2b&from=console

标签:AI,歌手,C#,Gb4,Ab4,Bb4,Db4,霸气
From: https://www.cnblogs.com/blogtimes/p/17791037.html

相关文章

  • 智慧矿山保安全:人员越界识别AI算法实时预警
    煤矿作为一种危险性较高的工业领域,安全管理一直是煤矿企业的重要任务。传统煤矿安全管理主要依靠人工巡逻及视频监控等手段,但这些方法往往存在人力不足、盲区多等问题,无法实时监控和预警,难以有效避免事故的发生。随着人工智能技术的快速发展,智慧矿山AI算法系列应运而生,其中包括了人......
  • 20_rust的Trait
    TraitTrait告诉Rust编译器某些类型具有哪些并可与其它类型共享的功能。Trait:抽象的定义共享行为。Traitbounds(约束):泛型类型参数指定为实现了特定行为的类型。Trait与其它语言的接口(interface)类似,但有些区别。定义一个TraitTrait的定义:把方法签名放在一起,来定义实现某种目的......
  • Langchain语言模型提问请求,提问使用非标准的sse请求获取流式数据,java后台版解决方式
    问题描述:请求后接收的数据流,不走EventSourceListener的onEvent事件,但onOpenonClosed都是正常走的。 问题原因:默认的接口返回是StreamingResponse不是EventSourceResponse,无法走标准sse协议的onEvent()方法 目标需求:在不改动模型方面接口的情况下,接收到流式数据并通过sse协......
  • 人工智能 | AI驾驶系统:改变汽车产业的革命
    随着人工智能(AI)技术的飞速发展,汽车产业正迎来一场革命。AI驾驶系统的出现和逐渐成熟,不仅将改变我们的驾驶方式,还将深刻影响整个汽车产业,从汽车制造商到城市规划者,再到每一位驾驶者。AI驾驶系统的基础AI驾驶系统建立在深度学习、计算机视觉和传感器技术的基础之上。这些系统通过车载......
  • Kubernetes跨StorageClass迁移,切换Rainbond默认SC
    基于主机安装或基于Kubernetes安装的Rainbond集群(均使用默认参数安装),默认使用的共享文件存储是NFS,以Pod方式运行在Kubernetes中,但这种方式也有一些无法避免的问题,比如:NFS的SVC无法通信时集群无法挂载存储则导致不能使用、服务器关机时卡在umount导致不能正常关机等等......
  • 使用langchain与你自己的数据对话(一):文档加载与切割
    LangChain是一个基于大语言模型(如ChatGPT)用于构建端到端语言模型应用的Python框架。它提供了一套工具、组件和接口,可简化创建由大型语言模型(LLM)和聊天模型提供支持的应用程序的过程。LangChain可以轻松管理与语言模型的交互,将多个组件链接在一起,以便在不同的应用程序中使用......
  • Kubernetes跨StorageClass迁移,切换Rainbond默认SC
    基于主机安装或基于Kubernetes安装的Rainbond集群(均使用默认参数安装),默认使用的共享文件存储是NFS,以Pod方式运行在Kubernetes中,但这种方式也有一些无法避免的问题,比如:NFS的SVC无法通信时集群无法挂载存储则导致不能使用、服务器关机时卡在umount导致不能正常关机等等......
  • TSINGSEE青犀老旧小区升级改造AI+视频监控方案
    一、背景与需求近年来,政府高度重视城镇老旧小区改造工作,强调要加快老旧小区改造,不断完善城市管理和服务,彻底改变粗放型管理方式,让人民群众在城市生活得更方便、更舒心、更美好。老旧小区升级改造面临以下问题:1)原有设施老化、故障不断,布线难施工难;2)设备若出现故障,需跑到现场解决,改善......
  • TSINGSEE青犀基于AI视频识别技术的平安校园安防视频监控方案
    一、背景需求因学校频频出治安事件,所以必须要加强学校的安防工作,目前来看,大部分校园都建设了视频监控来预防保障校园安全。但是传统的视频监控系统,主要通过设备来录像以及人员时时监控来进行。这种监管方式效率十分低下,因为监控点较多时,监控人员无法顾及所有的监控点,同时无法保障......
  • Generative AI 新世界 | Falcon 40B 开源大模型的部署方式分析
    在上期文章,我们探讨了如何在自定义数据集上来微调(fine-tuned)模型。本期文章,我们将重新回到文本生成的大模型部署场景,探讨如何在AmazonSageMaker上部署具有400亿参数的Falcon40B开源大模型。亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开......