CN118037497A - 基于区块链的音乐版权管理方法及系统 - Google Patents
基于区块链的音乐版权管理方法及系统 Download PDFInfo
- Publication number
- CN118037497A CN118037497A CN202410232763.2A CN202410232763A CN118037497A CN 118037497 A CN118037497 A CN 118037497A CN 202410232763 A CN202410232763 A CN 202410232763A CN 118037497 A CN118037497 A CN 118037497A
- Authority
- CN
- China
- Prior art keywords
- token
- music
- musical
- musical composition
- blockchain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000007726 management method Methods 0.000 title claims abstract description 28
- 239000000203 mixture Substances 0.000 claims abstract description 151
- 239000013598 vector Substances 0.000 claims abstract description 89
- 238000012795 verification Methods 0.000 claims abstract description 39
- 238000009826 distribution Methods 0.000 claims abstract description 35
- 238000000605 extraction Methods 0.000 claims abstract description 29
- 230000006870 function Effects 0.000 claims description 121
- 230000033764 rhythmic process Effects 0.000 claims description 31
- 241000609666 Tuber aestivum Species 0.000 claims description 17
- 238000005266 casting Methods 0.000 claims description 17
- 238000005070 sampling Methods 0.000 claims description 17
- 238000000034 method Methods 0.000 claims description 15
- 238000010276 construction Methods 0.000 claims description 13
- 238000004458 analytical method Methods 0.000 claims description 12
- 238000007781 pre-processing Methods 0.000 claims description 9
- 238000012952 Resampling Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 7
- 238000005096 rolling process Methods 0.000 claims description 7
- 238000001914 filtration Methods 0.000 claims description 6
- 238000010606 normalization Methods 0.000 claims description 6
- 238000003491 array Methods 0.000 claims description 5
- 230000008676 import Effects 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims description 5
- 238000003860 storage Methods 0.000 claims description 5
- 230000001419 dependent effect Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 6
- 238000013475 authorization Methods 0.000 abstract description 2
- 235000006679 Mentha X verticillata Nutrition 0.000 description 12
- 235000002899 Mentha suaveolens Nutrition 0.000 description 12
- 235000001636 Mentha x rotundifolia Nutrition 0.000 description 12
- 239000011159 matrix material Substances 0.000 description 12
- 239000011295 pitch Substances 0.000 description 12
- 238000001228 spectrum Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 238000013515 script Methods 0.000 description 4
- 230000003213 activating effect Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 241000053227 Themus Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了基于区块链的音乐版权管理方法及系统,属于音乐版权技术领域。首先获取音乐作品,将音乐作品进行特征提取,得到音乐特征向量;其次将音乐特征向量进行编码,生成非同质化代币并部署到区块链;最后对音乐作品进行版权登记和验证,若验证通过,则进行版权交易和收益分配;若验证不通过,则拒绝请求。本发明利用深度信念网络和区块链技术,对音乐作品进行特征提取和编码,生成非同质化代币,并将其存储在区块链上,形成一个去中心化的音乐版权登记和验证系统;还利用智能合约,实现音乐作品的授权和分配,以及版权收益的自动结算,有效地防止音乐作品的盗版和侵权,保护音乐创作者的权益,提高音乐产业的效率和透明度。
Description
技术领域
本发明属于音乐版权技术领域,具体涉及一种基于区块链的音乐版权管理方法及系统。
背景技术
音乐版权是指音乐创作者或者其他权利人对音乐作品享有的一种法律上的专有权利,包括对音乐作品的复制、发行、表演、广播、改编等行为的控制权和获得报酬的权利。音乐版权的目的是为了保护音乐创作者的智力成果,激励音乐创作的活力,促进音乐产业的发展,同时也为音乐作品的合法使用和传播提供规范和依据。
音乐版权根据不同的标准,可以分为不同的类型。按照音乐作品的形式,可以分为乐谱版权和录音版权。乐谱版权是指对音乐作品的乐谱或者其他以文字或者符号表示的形式的版权,录音版权是指对音乐作品的录音或者其他以声音表示的形式的版权。乐谱版权和录音版权是相互独立的,由不同的权利人持有和管理。按照音乐作品的性质,可以分为音乐著作权和邻接权。音乐著作权是指对音乐作品本身的版权,包括音乐作品的创作、改编、演奏等行为的权利。邻接权是指对音乐作品的表演者、制作者和广播组织的版权,包括音乐作品的录制、复制、发行、广播等行为的权利。音乐著作权和邻接权是相互补充的,由不同的权利人享有和行使。
然而,目前的音乐版权管理系统存在着以下的问题:版权登记不完善:音乐作品的版权登记缺乏统一的标准和规范,导致音乐作品的版权信息不完整、不准确、不一致,难以确定音乐作品的真实权利人和版权范围。版权数据库不统一:音乐作品的版权信息分散在不同的版权管理机构和平台,缺乏有效的数据共享和协同,导致音乐作品的版权信息不完整、不及时、不可靠,难以实现音乐作品的全球搜索和查询。版权收益分配不公平:音乐作品的版权收益分配过程缺乏透明度和公正性,导致音乐创作者的收入和声誉受到损失,音乐产业的发展受到影响。版权侵权难以监测:音乐作品的版权侵权行为难以发现和证明,导致音乐创作者的权益难以维护和保护,音乐产业的秩序受到破坏。
因此,音乐版权的保护和管理涉及到多方的利益和权利,需要建立一个有效的音乐版权管理系统,以实现音乐版权的登记、验证、授权、交易、收益分配等功能。
发明内容
基于上述技术问题,本发明提供一种基于区块链的音乐版权管理方法及系统,该方法综合应用深度信念网络(DBN)和区块链技术,针对音乐作品的节奏和和声元素进行深入的版权保护,从而有效防止盗版和侵权行为,保护创作者权益,提升音乐产业的效率和透明度。
本发明提供基于区块链的音乐版权管理方法,所述方法包括:
步骤S1:获取音乐作品,将所述音乐作品进行特征提取,得到音乐特征向量;
步骤S2:将所述音乐特征向量进行编码,生成非同质化代币;
步骤S3:将所述非同质化代币部署到区块链;
步骤S4:对所述音乐作品进行版权登记和验证,若验证通过,则进行版权交易和收益分配;若验证不通过,则拒绝请求。
可选地,所述将所述音乐作品进行特征提取,得到音乐特征向量,具体包括:
对所述音乐作品进行预处理,将所述音乐作品转换为标准的数字音频格式,得到标准音乐作品,具体包括:
导入音频分析和处理库,从音乐作品文件中读取音频数据,并返回波形数组和原始采样率;将所述波形数组转换为单声道,得到单声道波型数组;将所述单声道波型数组使用所述原始采样率重新采样,得到重新采样的波形数组;将所述重新采样的波形数组保存为新文件,得到标准音乐作品;所述新文件为标准的数字音频格式;
将所述标准音乐作品进行特征提取,得到音乐特征向量,具体包括:
使用时频域分析的方法,将所述标准音乐作品分割为若干个短时窗口,对每个窗口进行傅里叶变换,得到标准音乐作品的频谱图,然后对所述频谱图进行滤波和归一化,得到标准音乐作品的节奏图;将所述节奏图通过深度信念网络进行特征提取,输出节奏特征向量;
使用钢琴卷方法,将所述标准音乐作品转换为MIDI格式,然后对MIDI文件进行解析,得到所述标准音乐作品的音符序列;将所述音符序列通过所述深度信念网络进行特征提取,输出和声特征向量;
将所述节奏特征向量和所述和声特征向量拼接成音乐特征向量。
可选地,所述将所述音乐特征向量进行编码,生成非同质化代币,具体包括:
计算音乐特征向量的SHA-256哈希值,作为数字指纹,具体包括:
导入计算哈希值的Python库,将所述音乐特征向量转换为字节数组;对所述字节数组计算SHA-256哈希值,表示音乐作品的数字指纹;将哈希值转换为十六进制字符串,所述十六进制字符串为长度为64的字符串;使用bin和int函数,将十六进制字符串转换为二进制字符串,所述二进制字符串由0和1组成的字符串,表示音乐作品的最终数字指纹;
为所述非同质化代币生成元数据文件,所述元数据文件为JSON格式的文件,包含所述非同质化代币的基本信息和所述数字指纹。
可选地,所述将所述非同质化代币部署到区块链,具体包括:
使用智能合约语言编写非同质化代币合约,具体包括:
引入依赖和定义合约,首先声明智能合约的许可证;其次指定智能合约使用的Solidity版本;然后导入指定标准和框架合约;最后定义合约;
存储结构和构造函数,首先定义私有映射;所述映射用于存储每个非同质化代币的唯一资源标识符;其次定义私有的无符号整数,表示当前非同质化代币的ID,初始值为0,记录和生成非同质化代币的ID,每次创建新的非同质化代币,变量就会加一;最后定义合约的构造函数,用来初始化合约的状态,调用了指定标准的构造函数,传入了两个参数,分别为非同质化代币的名称和符号;
铸造功能,首先定义公共函数,允许用户创建新的非同质化代币;它接收统一资源标识符作为参数,所述统一资源标识符指向非同质化代币的元数据;其次每次调用时,将当前非同质化代币的ID加一,代表一个新的唯一代币ID;然后调用指定标准的内部函数创建一个新的非同质化代币,将一个新的非同质化代币分配给调用者;然后调用本合约的内部函数,将新的非同质化代币的统一资源标识符设置为传入的参数;最后返回新创建的非同质化代币的ID;
设置和获取数字身份证,首先声明本合约的内部函数,所述本合约内部函数接受两个参数,分别为非同质化代币的ID和非同质化代币的统一资源标识符;其次设置条件判断语句,检查传入的非同质化代币的ID是否对应一个存在的非同质化代币,如果不是,抛出错误,提示统一资源标识符设置失败;然后将传入的非同质化代币的统一资源标识符存储在映射中;再次声明公共函数,所述公共函数输入非同质化代币的ID,返回非同质化代币的统一资源标识符;接着设置条件判断语句,检查传入的非同质化代币的ID是否对应一个存在的非同质化代币,如果不是,就会抛出错误,提示统一资源标识符设置失败;最后返回传入的非同质化代币的ID对应的非同质化代币的统一资源标识符;
将编写的智能合约部署到区块链,具体包括:
从Truffle框架的构建目录中导入之前定义的智能合约的名称,所述智能合约用于创建和管理音乐相关的非同质化代币;导出部署函数,所述函数是Truffle框架执行部署任务时调用的;将之前定义的智能合约部署到以太坊网络。
可选地,所述对所述音乐作品进行版权登记和验证,若验证通过,则进行版权交易和收益分配;若验证不通过,则拒绝请求,具体包括:
当用户上传音乐作品时,提供音乐作品的版权信息以及用户身份信息;对用户提供的信息进行验证;将其作为NFT的元数据,存储在区块链上;
当用户下载或播放音乐作品时,对音乐作品进行特征提取和编码,生成数字指纹,然后将其与区块链上的NFT进行比对,验证音乐作品的版权信息和使用权限;如果音乐作品的版权信息和使用权限与用户的请求相符,允许用户下载或播放音乐作品,并记录用户的使用情况,进行版权交易和收益分配;如果音乐作品的版权信息和使用权限与用户的请求不符,拒绝用户的请求。
本发明还提供基于区块链的音乐版权管理系统,所述系统包括:
音乐作品特征提取模块,用于获取音乐作品,将所述音乐作品进行特征提取,得到音乐特征向量;
非同质化代币生成模块,用于将所述音乐特征向量进行编码,生成非同质化代币;
区块链部署模块,用于将所述非同质化代币部署到区块链;
音乐作品功能实施模块,用于对所述音乐作品进行版权登记和验证,若验证通过,则进行版权交易和收益分配;若验证不通过,则拒绝请求。
可选地,所述音乐作品特征提取模块,具体包括:
预处理子模块,用于对所述音乐作品进行预处理,将所述音乐作品转换为标准的数字音频格式,得到标准音乐作品,具体包括:
导入音频分析和处理库,从音乐作品文件中读取音频数据,并返回波形数组和原始采样率;将所述波形数组转换为单声道,得到单声道波型数组;将所述单声道波型数组使用所述原始采样率重新采样,得到重新采样的波形数组;将所述重新采样的波形数组保存为新文件,得到标准音乐作品;所述新文件为标准的数字音频格式;
音乐特征向量生成子模块,用于将所述标准音乐作品进行特征提取,得到音乐特征向量,具体包括:
使用时频域分析的方法,将所述标准音乐作品分割为若干个短时窗口,对每个窗口进行傅里叶变换,得到标准音乐作品的频谱图,然后对所述频谱图进行滤波和归一化,得到标准音乐作品的节奏图;将所述节奏图通过深度信念网络进行特征提取,输出节奏特征向量;
使用钢琴卷方法,将所述标准音乐作品转换为MIDI格式,然后对MIDI文件进行解析,得到所述标准音乐作品的音符序列;将所述音符序列通过所述深度信念网络进行特征提取,输出和声特征向量;
将所述节奏特征向量和所述和声特征向量拼接成音乐特征向量。
可选地,所述非同质化代币生成模块,具体包括:
数字指纹生成子模块,用于计算音乐特征向量的SHA-256哈希值,作为数字指纹,具体包括:
导入计算哈希值的Python库,将所述音乐特征向量转换为字节数组;对所述字节数组计算SHA-256哈希值,表示音乐作品的数字指纹;将哈希值转换为十六进制字符串,所述十六进制字符串为长度为64的字符串;使用bin和int函数,将十六进制字符串转换为二进制字符串,所述二进制字符串由0和1组成的字符串,表示音乐作品的最终数字指纹;
元数据生成子模块,用于为所述非同质化代币生成元数据文件,所述元数据文件为JSON格式的文件,包含所述非同质化代币的基本信息和所述数字指纹。
可选地,所述区块链部署模块,具体包括:
智能合约编写子模块,用于使用智能合约语言编写非同质化代币合约,具体包括:
依赖引入和合约定义单元,首先声明智能合约的许可证;其次指定智能合约使用的Solidity版本;然后导入指定标准和框架合约;最后定义合约;
结构存储和函数构造单元,首先定义私有映射;所述映射用于存储每个非同质化代币的唯一资源标识符;其次定义私有的无符号整数,表示当前非同质化代币的ID,初始值为0,记录和生成非同质化代币的ID,每次创建新的非同质化代币,变量就会加一;最后定义合约的构造函数,用来初始化合约的状态,调用了指定标准的构造函数,传入了两个参数,分别为非同质化代币的名称和符号;
铸造功能单元,首先定义公共函数,允许用户创建新的非同质化代币;它接收统一资源标识符作为参数,所述统一资源标识符指向非同质化代币的元数据;其次每次调用时,将当前非同质化代币的ID加一,代表一个新的唯一代币ID;然后调用指定标准的内部函数创建一个新的非同质化代币,将一个新的非同质化代币分配给调用者;然后调用本合约的内部函数,将新的非同质化代币的统一资源标识符设置为传入的参数;最后返回新创建的非同质化代币的ID;
数字身份证获取单元,首先声明本合约的内部函数,所述本合约内部函数接受两个参数,分别为非同质化代币的ID和非同质化代币的统一资源标识符;其次设置条件判断语句,检查传入的非同质化代币的ID是否对应一个存在的非同质化代币,如果不是,抛出错误,提示统一资源标识符设置失败;然后将传入的非同质化代币的统一资源标识符存储在映射中;再次声明公共函数,所述公共函数输入非同质化代币的ID,返回非同质化代币的统一资源标识符;接着设置条件判断语句,检查传入的非同质化代币的ID是否对应一个存在的非同质化代币,如果不是,就会抛出错误,提示统一资源标识符设置失败;最后返回传入的非同质化代币的ID对应的非同质化代币的统一资源标识符;
合约部署区块链子模块,用于将编写的智能合约部署到区块链,具体包括:
从Truffle框架的构建目录中导入之前定义的智能合约的名称,所述智能合约用于创建和管理音乐相关的非同质化代币;导出部署函数,所述函数是Truffle框架执行部署任务时调用的;将之前定义的智能合约部署到以太坊网络。
可选地,所述音乐作品功能实施模块,具体包括:
版权登记子模块,用于当用户上传音乐作品时,提供音乐作品的版权信息以及用户身份信息;对用户提供的信息进行验证;将其作为NFT的元数据,存储在区块链上;
版权验证子模块,用于当用户下载或播放音乐作品时,对音乐作品进行特征提取和编码,生成数字指纹,然后将其与区块链上的NFT进行比对,验证音乐作品的版权信息和使用权限;如果音乐作品的版权信息和使用权限与用户的请求相符,允许用户下载或播放音乐作品,并记录用户的使用情况,进行版权交易和收益分配;如果音乐作品的版权信息和使用权限与用户的请求不符,拒绝用户的请求。
本发明与现有技术相比,具有以下有益效果:
本发明提出了一种基于DBN的音乐特征提取和编码方法,该方法可以准确地提取音乐作品的节奏和和声特征,生成独特的音乐作品指纹,为音乐版权的识别和验证提供可靠的依据;提出了一种基于区块链的音乐版权管理框架,该框架利用区块链的不可篡改、去中心化、共识机制等特性,将音乐作品的NFT和相关版权信息存储在区块链上,实现音乐版权的安全和透明的管理;提出了一种基于智能合约的音乐版权交易和收益分配机制,该机制利用智能合约的自动执行、可编程、可信任等特性,实现音乐作品的授权和分配,以及版权收益的自动结算,提高音乐版权交易的效率和公平性。
附图说明
图1为本发明的基于区块链的音乐版权管理方法流程图;
图2为本发明的基于区块链的音乐版权管理系统结构图。
具体实施方式
下面结合具体实施案例和附图对本发明作进一步说明,但本发明并不局限于这些实施例。
实施例1
如图1所示,本发明公开基于区块链的音乐版权管理方法,方法包括:
步骤S1:获取音乐作品,将音乐作品进行特征提取,得到音乐作品的音乐特征向量。
步骤S2:将音乐特征向量进行编码,生成非同质化代币。
步骤S3:将非同质化代币部署到区块链。
步骤S4:对音乐作品进行版权登记和验证,若验证通过,则进行版权交易和收益分配;若验证不通过,则拒绝请求。
下面对各个步骤进行详细论述:
步骤S1:获取音乐作品,将音乐作品进行特征提取,得到音乐作品的音乐特征向量。
步骤S1具体包括:
对音乐作品进行预处理,将音乐作品转换为标准的数字音频格式,得到标准音乐作品,具体包括:
导入librosa库,用于音频分析和处理的Python库;使用librosa.load函数从'music.wav'文件中读取音频数据,并返回波形数组x和采样率sr(单位是Hz),这里设置sr=None,表示保持原始文件的采样率,不进行重采样,表示为x,sr=librosa.load('music.wav',sr=None);使用librosa.to_mono函数,将波形数组x转换为单声道,即只保留一个声道的数据,减少数据量和复杂度,如果原始音频是立体声(双声道),此函数会将其转换成单声道,通过对左右两个声道的数据取平均来实现,表示为x=librosa.to_mono(x);使用librosa.resample函数,将波形数组x重新采样到22.05kHz,即每秒采样22050个点,使用原始文件中的sr作为输入参数,按照原始文件采样率进行重采样,表示为x=librosa.resample(x,sr,22050);使用librosa.output.write_wav函数,将重新采样的波形数组x保存名为'music_resampled.wav'的新WAV文件,即标准音乐作品;这里使用22.05kHz作为输出文件的采样率。
本实施例中,标准的数字音频格式为WAV或MP3,以便进行后续的特征提取。
将标准音乐作品进行特征提取,得到音乐特征向量,具体包括:
使用时频域分析的方法,将标准音乐作品分割为若干个短时窗口,对每个窗口进行傅里叶变换,得到标准音乐作品的频谱图,然后对频谱图进行滤波和归一化,得到标准音乐作品的节奏图;将节奏图作为深度信念网络中第一层RBM的输入,学习音乐作品的节奏特征,输出节奏特征向量,具体包括:
导入librosa和numpy库;使用librosa.load函数,从标准音乐作品'music_resampled.wav'文件中读取音频数据,并返回波形数组x和采样率sr;这里设置sr=22050,表示使用22.05kHz的采样率,这是librosa的默认值;使用librosa.stft函数,对波形数组x进行短时傅里叶变换(STFT),并返回复数矩阵X;这里设置n_fft=1024,表示使用1024个点的FFT窗口;设置hop_length=512,表示相邻窗口之间的距离为512个点,表示为X=librosa.stft(x,n_fft=1024,hop_length=512);使用numpy.abs函数,将复数矩阵X转换为幅度,即X的每个元素取绝对值;使用librosa.feature.melspectrogram函数,对幅度谱X应用梅尔尺度的滤波器组,将频率从线性尺度转换为梅尔尺度,并返回梅尔谱X,表示为X=librosa.feature.melspectrogram(S=X,sr=sr,n_mels=128);这里设置S=X,表示使用X作为输入的幅度谱;设置sr=sr,表示使用与输入音频相同的采样率;设置n_mels=128,表示使用128个梅尔频带;使用librosa.power_to_db函数,将梅尔谱X转换为分贝单位,即X的每个元素取对数,并返回分贝谱X;使用numpy.min和numpy.max函数,分别计算分贝谱X的最小值和最大值;使用numpy的广播机制,将分贝谱X减去最小值,再除以最大值和最小值的差,将X归一化到[0,1]的范围内,表示为X=(X-np.min(X))/(np.max(X)-np.min(X));使用librosa.display.specshow函数,绘制节奏图,即以时间为横轴,梅尔频率为纵轴,分贝值为颜色,显示分贝谱X的图像。这里设置sr=sr,表示使用与输入音频相同的采样率;设置x_axis='time',表示横轴显示时间;设置y_axis='mel',表示纵轴显示梅尔频率,表示为librosa.display.specshow(X,sr=sr,x_axis='time',y_axis='mel')。
定义第一层RBM的权重矩阵和偏置向量;权重矩阵w1是随机生成的正态分布矩阵,形状是(len(X),n_hidden),len(X)是节奏图X的长度,n_hidden是隐藏单元的个数,表示为w1=np.random.normal(0,0.01,(len(X),n_hidden));偏置向量b1是全零向量,长度为n_hidden,表示为b1=np.zeros(n_hidden);计算节奏特征向量rv,它是从节奏图X中提取的特征,rv是使用sigmoid函数激活的线性变换的结果,表示为rv=tf.nn.sigmoid(np.dot(X,w1)+b1),其中np.dot(X,w1)是X和w1的矩阵乘法,+b1是向量加法。
本实施例中,计算节奏特征向量,首先通过输入数据与权重矩阵的点积(并加上偏置)来得到隐藏层的激活值,然后使用sigmoid函数进行非线性转换,输出每个隐藏单元的激活程度,作用是在RBM模型的第一层中,使用随机初始化的权重和零偏置来从输入数据(例如音乐作品的节奏图)中计算出隐藏层的激活特征向量,这个向量可以用来表示音乐作品的节奏特征。
使用钢琴卷方法,将标准音乐作品转换为MIDI格式,然后对MIDI文件进行解析,得到标准音乐作品的音符序列;将音符序列作为深度信念网络中第二层RBM的输入,学习标准音乐作品的和声特征,输出和声特征向量,具体包括:
将标准音乐作品转换为MIDI格式,得到'music.mid';导入pretty_midi库,它是用于处理MIDI文件的Python库;使用pretty_midi.PrettyMIDI函数,从'music.mid'文件中加载PrettyMIDI对象,它是包含了MIDI文件的信息和方法的类,表示为pm=pretty_midi.PrettyMIDI('music.mid');使用PrettyMIDI对象的get_piano_roll方法,获取MIDI对象的钢琴卷,它是二维数组,表示每个音符在每个时间步的强度,这里设置fs=100,表示每秒采样100个时间步,表示为pr=pm.get_piano_roll(fs=100);定义空列表ns,用于存储音符序列,表示为ns=[];使用for循环,遍历钢琴卷的每一列,即每个时间步,表示为for iin range(pr.shape[1]);使用numpy.nonzero函数,找出钢琴卷中当前时间步的非零元素,即激活的音符(正在播放的音符)的音高,返回包含音高的一维数组pitches,表示为pitches=np.nonzero(pr[:,i])[0];使用if-else语句,判断pitches的长度是否为零,即当前时间步是否有激活的音符,表示为iflen(pitches)==0;如果pitches的长度为零,表示当前时间步没有激活的音符,向ns列表中添加零,表示休止符,表示为ns.append(0);如果pitches的长度不为零,表示当前时间步有激活的音符,使用numpy.mean函数,计算pitches的平均值,即当前时间步的平均音高。然后将平均音高转换为整数,并向ns列表中添加,表示为ns.append(int(np.mean(pitches)))。
定义第二层RBM的权重矩阵和偏置向量;权重矩阵w2是随机生成的正态分布矩阵,形状是(len(ns),n_hidden),len(ns)是音符序列ns的长度,n_hidden是隐藏单元的个数,表示为w2=np.random.normal(0,0.01,(len(n s),n_hidden));偏置向量b2是全零向量,长度为n_hidden,表示为b2=np.zeros(n_hidden);计算和声特征向量hv,它是从音符序列ns中提取的特征,hv是使用sigmoid函数激活的线性变换的结果,表示为hv=tf.nn.sigmoid(np.dot(ns,w2)+b2),式中np.dot(ns,w2)是ns和w2的矩阵乘法,+b2是向量加法。
本实施例中,计算和声特征向量,首先通过音符序列与权重矩阵的点积(并加上偏置)来得到隐藏层的激活值,然后使用sigmoid函数进行非线性转换,输出每个隐藏单元的激活程度,作用是在RBM模型的第二层中,使用随机初始化的权重和零偏置来从音符序列中计算出隐藏层的激活特征向量,这个向量可以用来表示音乐作品的和声特征;音符序列反映了音乐作品的和声结构和变化,是音乐作品的重要特征之一。
本实施例中,将标准音乐作品转换为MIDI格式采用以下几种方法:
音乐作品是以MP3,WAV,OGG,AAC,WMA等常见的音频格式存储的,使用一些在线的音频转换工具,如MIDI转换器或MP3转MIDI,将音频文件上传到网站,选择MIDI格式,然后进行转换;音乐作品是以乐谱,歌词,吉他谱等文本格式存储的,使用一些在线的乐谱编辑工具,如Musescore或Noteflight,将文本文件导入到网站,编辑和调整乐谱,然后导出为MIDI格式;音乐作品是以演奏,唱歌,口哨等实时录音的方式存储的,使用一些在线的音频识别工具,如Audio to MIDI Converter或Song BPM Finder,将录音文件上传到网站,选择MIDI格式,然后进行转换;这些工具会分析音频文件的音符,节奏,和声等信息,并生成相应的MIDI文件。
将提取的节奏特征向量和和声特征向量拼接成音乐特征向量,使用numpy.concatenate函数,将节奏特征向量rv和和声特征向量hv拼接成音乐特征向量fv,一维数组,表示音乐作品的特征,表示为fv=np.concatenate([rv,hv])。
本实施例中,利用深度信念网络(DBN)对音乐作品进行特征提取,提取音乐作品的节奏和和声特征,生成独特的音乐作品指纹;DBN是一种深度学习模型,由多层受限玻尔兹曼机(RBM)组成,每层RBM可以学习音乐数据的不同层次的特征,从而形成深层的特征表示:本发明采用了三层的DBN,分别对应于音乐作品的节奏、和声和整体的特征。
步骤S2:将音乐特征向量进行编码,生成非同质化代币。
步骤S2具体包括:
计算音乐特征向量的SHA-256哈希值,作为数字指纹,具体包括:
导入hashlib库,import hashlib它是用于计算哈希值的Python库;使用numpy.ndarray.tobytes方法,将音乐特征向量fv转换为字节数组,它是二进制数据,表示音乐作品的特征,表示为fv=fv.tobytes();使用hashlib.sha256函数,对字节数组fv计算SHA-256哈希值,它是hashlib.HASH对象,表示为hv=hashlib.sha256(fv);SHA-256是一种广泛使用的安全哈希算法,可以产生256位的哈希值;使用hashlib.HASH.hexdigest方法,将哈希值hv转换为十六进制字符串,长度为64的字符串,表示音乐作品的数字指纹;使用bin和int函数,将十六进制字符串hv转换为二进制字符串,它是由0和1组成的字符串,表示音乐作品的数字指纹,表示为fp=bin(int(hv.hexdigest(),16))[2:];使用print函数,打印二进制字符串fp,显示音乐作品的数字指纹;表示为print(fp),该数字指纹是由0和1组成的二进制串,具有唯一性和可识别性,用来标识音乐作品的版权信息。
使用数字指纹作为基础,创建生成非同质化代币(NFT),具体包括:
第一,NFT为非同质化代币(Non-Fungible Token)的缩写,是一种基于区块链的、不可分割的、不可互换的、独一无二的数字资产,可以用来代表任何独特的事物,如艺术品、收藏品、游戏道具等;NFT的价值和意义不在于它本身,而在于它所代表的内容和背后的故事;NFT的优势是它可以确保数字内容的稀缺性、真实性、所有权和可追溯性,从而为创作者提供更多的价值和保障。
第二,需要准备想要生成NFT的数字内容,如图片、音频、视频、文本等;可以使用自己的创作,或者使用一些开源的或第三方的工具,如Raremints、NFT Art Generator、UniqMyNFT等,来生成独特的数字艺术。
第三,为NFT生成元数据文件,通常是JSON格式的文件,包含了NFT的基本信息和数字指纹,表示为{"name":"音乐作品标题","description":"音乐作品描述","image":"音乐作品封面图片的URL","attributes":[{"trait_type":"音乐作品作者","value":"作者名称"},{"trait_type":"音乐作品时长","value":"时长信息"},{"display_type":"数字指纹","value":"指纹哈希值"}]};数字指纹是NFT的唯一标识符,通常是由0和1组成的二进制串,或者是由哈希函数计算出的固定长度的字符串;数字指纹可以确保NFT的不可篡改和不可复制。
步骤S3:将非同质化代币部署到区块链。
步骤S3具体包括:
使用智能合约语言(如Solidity,用于以太坊区块链)来编写NFT的合约,具体包括:
编写智能合约来定义NFT的属性和行为;如名称、描述、价格、数量、版税、可解锁内容等,版税为创作者每次NFT转售时所获得的百分比;如果是可铸造多份的NFT(如艺术品的多份拷贝),可以在合约中指定数量;可解锁内容为某些NFT平台允许设置只有NFT所有者才能访问的内容,这些信息可以在智能合约中定义;价格为初次铸造时,在合约中设定NFT的价格,或者在NFT平台上设定;智能合约是一种运行在区块链上的自动执行的程序,可以实现一些预设的逻辑和规则;使用一些开源的或第三方的框架和库,如OpenZeppelin、Truffle、Hardhat等,来编写和部署智能合约;需要遵循标准的接口和规范,如ERC-721、ERC-1155等,来保证NFT的互操作性和兼容性。
使用Solidity语言创建符合ERC-721标准的NFT智能合约,具体包括:
引入依赖和定义合约,首先声明智能合约的许可证,即MIT许可证,它是一种允许自由使用,修改,分发的许可证;其次指定智能合约使用的Solidity版本,表示为pragmasolidity^0.8.0;然后导入OpenZeppelin的ERC721合约,文件包含了ERC-721标准的接口和实现,直接继承和使用;最后定义名为MusicNFT的合约,它是ERC721的子类,也就是说,它继承了ERC721的所有属性和方法,表示为contractMusicNFT is ERC721{}。
存储结构和构造函数,首先定义私有的映射,也就是键值对的集合,这个映射的键是无符号的整数,表示NFT的ID,映射用于存储每个NFT的唯一资源标识符(URI);值是字符串,表示NFT的URI,也就是指向NFT的元数据的链接,元数据是一些描述NFT的信息,比如名称,图片,作者等,表示为mapping(uint256=>string)private_tokenURIs;其次定义私有的无符号整数,表示当前的NFT的ID,初始值为0,记录和生成NFT的ID,每次创建新的NFT,变量就会加一,表示为uint256 private_currentTokenId=0;最后定义合约的构造函数,用来初始化合约的状态,调用了ERC721的构造函数,传入了两个参数,分别是NFT的名称和符号,为MusicNFT和MUS,这两个参数用来标识这个NFT的类型,表示为constructor()ERC721("MusicNFT","MUS"){}。
铸造功能,首先定义公共函数,名字为mint,mint函数允许用户创建新的NFT;它接收一个URI作为参数,这个URI指向NFT的元数据,表示为function mint(string memorytokenURI)public returns(uint256){};其次每次调用时,它增加_currentTokenId,代表一个新的唯一代币ID;然后调用ERC721的内部函数_mint函数创建一个新的NFT,将一个新的NFT分配给一个地址,这个函数接受两个参数,分别是接收者的地址和NFT的ID,这里使用了msg.sender来表示调用者的地址,并将其分配给调用者,表示为_mint(msg.sender,_currentTokenId);然后调用本合约的内部函数_setTokenURI,将新NFT的URI设置为之前传入的参数,表示为_setTokenURI(_currentTokenId,tokenURI);最后返回新创建的NFT的ID,让调用者知道他创建的NFT的ID,表示为return_currentTokenId。
设置和获取数字身份证,首先声明内部函数_setTokenURI,用于将给定的tokenId与其URI关联,表示为function_setTokenURI(uint256 tokenId,string memorytokenURI)internal{};这个函数的作用是将一个NFT的URI设置为一个给定的值,这个函数接受两个参数,分别是NFT的ID和NFT的URI,这个函数只能被本合约内部调用,不能被外部调用;其次设置条件判断语句,检查传入的NFT的ID是否对应一个存在的NFT,如果不是,就会抛出一个错误,提示URI设置失败,表示为require(_exists(tokenId),"ERC721Metadata:URI set ofnonexistent token");然后将传入的NFT的URI存储在映射中,以便以后查询,表示为_tokenURIs[tokenId]=tokenURI;再次声明公共函数tokenURI,这个函数的作用是获取一个NFT的URI,这个函数接受一个参数,是一个无符号整数,表示NFT的ID,这个函数返回一个字符串,表示NFT的URI,这个函数重写了ERC721的虚拟函数,也就是说,它覆盖了ERC721的默认实现,提供了自定义的逻辑,表示为function tokenURI(uint256 tokenId)public view override returns(string memory){};接着设置条件判断语句,检查传入的NFT的ID是否对应一个存在的NFT,如果不是,就会抛出一个错误,提示URI设置失败;最后返回传入的NFT的ID对应的NFT的URI,表示为return_tokenURIs[tokenId]。
将编写的智能合约部署到区块链上,具体包括:
使用artifacts.require函数从Truffle的构建目录中导入了"MusicNFT"合约,MusicNFT是之前定义的智能合约的名称,用于创建和管理音乐相关的NFT;这一步骤使得脚本能够访问合约的ABI(应用程序二进制接口)和其他相关数据,以便部署,表示为constMusicNFT=artifacts.require(“MusicNFT”)。
使用module.exports函数导出一个部署函数,此函数是Truffle框架执行部署任务时调用的,是Node.js中用于导出模块的标准方式;此函数接受一个参数deployer,它是一个部署程序对象,提供了一些用于部署智能合约的方法和属性,用于帮助部署智能合约,表示为module.exports=function(deployer){}。
调用deployer对象的deploy方法,将MusicNFT合约部署到以太坊网络。deploy方法会自动处理很多底层细节,如合约的编译、生成合约的二进制代码、发送部署交易等,表示为deployer.deploy(MusicNFT)。
通过智能合约创建铸造NFT,具体包括:
使用了Truffle合约库来与以太坊智能合约进行交互,具体来说是执行一个铸造操作,用于创建一个新的NFT(非同质化代币)。
首先导入必要的库和智能合约的JSON接口,@truffle/contract是Truffle的一个库,用于从JavaScript代码中与智能合约进行交互,MusicNFT.json是智能合约的编译结果,包含了合约的ABI(应用程序二进制接口)和其他信息,表示为const contract=require('@truffle/contract')和const musicNFTContract=require('path/to/MusicNFT.json');其次定义了一个异步(铸造)函数mintNFT,它接受一个参数tokenURI,这是一个指向NFT元数据的URI,表示为async function mintNFT(tokenURI){};接着通过contract函数设置Truffle合约实例,表示为const MusicNFT=contract(musicNFTContract),并设置了Web3提供者,与以太坊网络通信的接口,表示为MusicNFT.setProvider(web3.currentProvider);然后部署合约实例并执行铸造操作,MusicNFT.deployed()获取已部署合约的实例;使用instance.mint('recipient_address',tokenURI)调用合约的mint函数,传入接收者地址和tokenURI,执行铸造操作。
本实施例中,智能合约中的铸造(Mint)函数就像一个制造机器,它可以创建新的NFT(非同质化代币);在Solidity合约代码中,这个函数允许合约的拥有者或授权用户调用它,每次调用时就会产生一个新的NFT。这个过程包括给这个新NFT分配一个唯一编号(ID)和设置一个tokenURI(这是一个链接,指向存储NFT信息的地方,比如图片或者其他形式的数字艺术)。
JavaScript部署和铸造脚本使用Truffle框架(帮助开发、测试和部署智能合约的工具)与智能合约交互来执行铸造操作;调用了智能合约中定义的mint函数,但操作是从外部的脚本发起的,而不是直接在区块链上执行;实际上是在做这样一件事情:它告诉智能合约“请根据我提供的信息,创建一个新的NFT”,这里的信息就是tokenURI。
智能合约中的铸造(mint)函数定义了创建NFT的规则和过程,它是NFT生成的核心逻辑;JavaScript代码是一个桥梁,让你可以从外部世界(比如网页或者其他应用程序)与智能合约进行交互,调用智能合约中的mint函数来创建NFT;智能合约中的mint函数就像一个“制造工厂”,而JavaScript代码就像是一个“遥控器”,通过遥控器,远程告诉“制造工厂”要生产一个新的产品(NFT),并且指定产品的详细信息(tokenURI);这样,开发者可以通过编写前端应用或脚本来与智能合约交互,实现自动化或用户驱动的NFT铸造过程。
本实施例中,上述内容整体步骤为:首先需要安装一些开发工具,如MetaMask、Solidity、Hardhat、Pinata等,以便与以太坊区块链进行交互,编写智能合约,上传和获取文件等;其次需要创建一个以太坊账户,并在测试网络(如Sepolia)上获取一些虚拟的以太币,以便支付部署智能合约的费用;然后需要编写一个符合ERC-721标准的智能合约,用来定义NFT的属性和功能;接着需要使用Hardhat或其他工具来编译和部署智能合约到测试网络上;部署成功后,在Etherscan等区块链浏览器上查看合约地址和交易记录;再次需要使用Pinata或其他服务来将音乐文件和数字指纹上传到IPFS上,以便实现去中心化的文件存储和访问;上传成功后,获得一个IPFS的哈希值,用来作为NFT的元数据的一部分;最后需要使用MetaMask调用智能合约的铸造函数,将数字指纹和IPFS的哈希值作为参数,生成一个唯一的NFT,并将其发送到以太坊账户;铸造成功后,可以在OpenSea等NFT市场上查看和交易NFT。
本实施例中,音乐特征提取和编码模块的工作流程为当用户上传一个音乐作品时,调用音乐特征提取和编码模块,对音乐作品进行特征提取和编码,生成音乐作品的数字指纹和NFT;将音乐作品的数字指纹和NFT存储在区块链上,作为音乐作品的版权证明;将音乐作品的NFT发送给用户,作为音乐作品的版权凭证。
步骤S4:对音乐作品进行版权登记和验证,若验证通过,则进行版权交易和收益分配;若验证不通过,则拒绝请求。
步骤S4具体包括:
当用户上传一个音乐作品时,用户提供音乐作品的相关版权信息,如音乐作品的名称、作者、时长、风格、版权类型、版权期限、版权价格等,以及用户的身份信息,如用户的姓名、地址、电话、邮箱等;对用户提供的信息进行验证,确保其真实性和合法性,然后将其作为NFT的元数据,一同存储在区块链上;这样,完成了音乐作品的版权登记,为音乐作品的版权提供了一个唯一的、不可篡改的、公开透明的标识和证明。
当用户下载或播放一个音乐作品时,调用音乐特征提取和编码模块,对音乐作品进行特征提取和编码,生成一个数字指纹,然后将其与区块链上的NFT进行比对,验证音乐作品的版权信息和使用权限;如果音乐作品的版权信息和使用权限与用户的请求相符,允许用户下载或播放音乐作品,并记录用户的使用情况,如用户的身份信息、使用时间、使用方式、使用时长等,以便进行后续的版权交易和收益分配;如果音乐作品的版权信息和使用权限与用户的请求不符,拒绝用户的请求,并提示用户购买或申请音乐作品的版权;这样,完成了音乐作品的版权验证,为音乐作品的版权保护提供了一个有效的、可信的、可追溯的机制;音乐版权验证的目的是为了防止音乐作品的盗版、侵权、滥用等行为,维护音乐作品的版权方和使用方的合法权益,促进音乐作品的合理利用和发展。
版权交易和收益分配具体包括:
当用户购买或申请一个音乐作品的版权时,调用音乐版权交易和收益分配模块,对音乐作品的版权进行授权和分配,以及版权收益的自动结算;要求用户提供音乐作品的版权交易的相关信息,如音乐作品的名称、作者、时长、风格、版权类型、版权期限、版权价格等,以及用户的身份信息,如用户的姓名、地址、电话、邮箱等;对用户提供的信息进行验证,确保其真实性和合法性,然后将其作为智能合约的输入,触发智能合约的执行;根据智能合约的逻辑和规则,对音乐作品的版权进行授权和分配,以及版权收益的自动结算;将音乐作品的版权从版权方转移给使用方,同时将音乐作品的版权收益按照一定的比例和规则,分配给版权方和使用方;将音乐作品的版权交易和收益分配的结果,记录在区块链上,作为音乐作品的版权交易和收益分配的证明;将音乐作品的版权交易和收益分配的结果,反馈给用户,作为音乐作品的版权交易和收益分配的凭证。
通过以上的步骤,完成了音乐作品的版权交易和收益分配,为音乐作品的版权方和使用方提供了一个高效的、可信的、公平的平台。这样,音乐作品的版权方和使用方就可以通过音乐作品的版权,获得相应的收入和利益,同时也可以促进音乐作品的创作和传播。
实施例2
如图2所示,本发明公开基于区块链的音乐版权管理系统,系统包括:
音乐作品特征提取模块10,用于获取音乐作品,将音乐作品进行特征提取,得到音乐特征向量。
非同质化代币生成模块20,用于将音乐特征向量进行编码,生成非同质化代币。
区块链部署模块30,用于将非同质化代币部署到区块链。
音乐作品功能实施模块40,用于对音乐作品进行版权登记和验证,若验证通过,则进行版权交易和收益分配;若验证不通过,则拒绝请求。
作为一种可选地实施方式,本发明音乐作品特征提取模块10,包括:
预处理子模块,用于对音乐作品进行预处理,将音乐作品转换为标准的数字音频格式,得到标准音乐作品,具体包括:
导入音频分析和处理库,从音乐作品文件中读取音频数据,并返回波形数组和原始采样率;将波形数组转换为单声道,得到单声道波型数组;将单声道波型数组使用原始采样率重新采样,得到重新采样的波形数组;将重新采样的波形数组保存为新文件,得到标准音乐作品;新文件为标准的数字音频格式。
音乐特征向量生成子模块,用于将标准音乐作品进行特征提取,得到音乐特征向量,具体包括:
使用时频域分析的方法,将标准音乐作品分割为若干个短时窗口,对每个窗口进行傅里叶变换,得到标准音乐作品的频谱图,然后对频谱图进行滤波和归一化,得到标准音乐作品的节奏图;将节奏图通过深度信念网络进行特征提取,输出节奏特征向量。
使用钢琴卷方法,将标准音乐作品转换为MIDI格式,然后对MIDI文件进行解析,得到标准音乐作品的音符序列;将音符序列通过深度信念网络进行特征提取,输出和声特征向量。
将节奏特征向量和和声特征向量拼接成音乐特征向量。
作为一种可选地实施方式,本发明非同质化代币生成模块20,包括:
数字指纹生成子模块,用于计算音乐特征向量的SHA-256哈希值,作为数字指纹,具体包括:
导入计算哈希值的Python库,将音乐特征向量转换为字节数组;对字节数组计算SHA-256哈希值,表示音乐作品的数字指纹;将哈希值转换为十六进制字符串,十六进制字符串为长度为64的字符串;使用bin和int函数,将十六进制字符串转换为二进制字符串,二进制字符串由0和1组成的字符串,表示音乐作品的最终数字指纹。
元数据生成子模块,用于为非同质化代币生成元数据文件,元数据文件为JSON格式的文件,包含非同质化代币的基本信息和数字指纹。
作为一种可选地实施方式,本发明区块链部署模块30,包括:
智能合约编写子模块,用于使用智能合约语言编写非同质化代币合约,具体包括:
依赖引入和合约定义单元,首先声明智能合约的许可证;其次指定智能合约使用的Solidity版本;然后导入指定标准和框架合约;最后定义合约。
结构存储和函数构造单元,首先定义私有映射;映射用于存储每个非同质化代币的唯一资源标识符;其次定义私有的无符号整数,表示当前非同质化代币的ID,初始值为0,记录和生成非同质化代币的ID,每次创建新的非同质化代币,变量就会加一;最后定义合约的构造函数,用来初始化合约的状态,调用了指定标准的构造函数,传入了两个参数,分别为非同质化代币的名称和符号。
铸造功能单元,首先定义公共函数,允许用户创建新的非同质化代币;它接收统一资源标识符作为参数,统一资源标识符指向非同质化代币的元数据;其次每次调用时,将当前非同质化代币的ID加一,代表一个新的唯一代币ID;然后调用指定标准的内部函数创建一个新的非同质化代币,将一个新的非同质化代币分配给调用者;然后调用本合约的内部函数,将新的非同质化代币的统一资源标识符设置为传入的参数;最后返回新创建的非同质化代币的ID。
数字身份证获取单元,首先声明本合约的内部函数,本合约内部函数接受两个参数,分别为非同质化代币的ID和非同质化代币的统一资源标识符;其次设置条件判断语句,检查传入的非同质化代币的ID是否对应一个存在的非同质化代币,如果不是,抛出错误,提示统一资源标识符设置失败;然后将传入的非同质化代币的统一资源标识符存储在映射中;再次声明公共函数,公共函数输入非同质化代币的ID,返回非同质化代币的统一资源标识符;接着设置条件判断语句,检查传入的非同质化代币的ID是否对应一个存在的非同质化代币,如果不是,就会抛出错误,提示统一资源标识符设置失败;最后返回传入的非同质化代币的ID对应的非同质化代币的统一资源标识符。
合约部署区块链子模块,用于将编写的智能合约部署到区块链,具体包括:
从Truffle框架的构建目录中导入之前定义的智能合约的名称,智能合约用于创建和管理音乐相关的非同质化代币;导出部署函数,函数是Truffle框架执行部署任务时调用的;将之前定义的智能合约部署到以太坊网络。
作为一种可选地实施方式,本发明音乐作品功能实施模块40,包括:
版权登记子模块,用于当用户上传音乐作品时,提供音乐作品的版权信息以及用户身份信息;对用户提供的信息进行验证;将其作为NFT的元数据,存储在区块链上。
版权验证子模块,用于当用户下载或播放音乐作品时,对音乐作品进行特征提取和编码,生成数字指纹,然后将其与区块链上的NFT进行比对,验证音乐作品的版权信息和使用权限;如果音乐作品的版权信息和使用权限与用户的请求相符,允许用户下载或播放音乐作品,并记录用户的使用情况,进行版权交易和收益分配;如果音乐作品的版权信息和使用权限与用户的请求不符,拒绝用户的请求。
本实施例中,音乐版权管理系统是一个基于区块链技术和音乐特征提取和编码技术的系统,旨在为音乐作品的版权方和使用方提供一个高效、安全、透明的平台,实现音乐作品的版权登记、验证、交易和收益分配。该模块主要包括三个子模块,分别是音乐特征提取和编码模块、音乐版权登记和验证模块、音乐版权交易和收益分配模块。音乐特征提取和编码模块负责对音乐作品进行特征提取和编码,生成音乐作品的数字指纹和NFT。音乐版权登记和验证模块负责对音乐作品的版权信息和使用情况进行记录和追踪,实现音乐作品的版权登记和验证。音乐版权交易和收益分配模块负责对音乐作品的版权进行授权和分配,以及版权收益的自动结算,实现音乐作品的版权交易和收益分配。该模块的创新之处在于,它利用了区块链技术和音乐特征提取和编码技术的优势,为音乐版权的管理提供了一个可靠的基础和平台,为音乐作品的创作者和使用者提供了更多的价值和保障。该模块的优势之处在于,它能够降低音乐版权的管理成本和风险,提高音乐版权的管理效率和透明度,促进音乐版权的公平分配和合理利用。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.基于区块链的音乐版权管理方法,其特征在于,所述方法包括:
步骤S1:获取音乐作品,将所述音乐作品进行特征提取,得到音乐特征向量;
步骤S2:将所述音乐特征向量进行编码,生成非同质化代币;
步骤S3:将所述非同质化代币部署到区块链;
步骤S4:对所述音乐作品进行版权登记和验证,若验证通过,则进行版权交易和收益分配;若验证不通过,则拒绝请求。
2.根据权利要求1所述的基于区块链的音乐版权管理方法,其特征在于,所述将所述音乐作品进行特征提取,得到音乐特征向量,具体包括:
对所述音乐作品进行预处理,将所述音乐作品转换为标准的数字音频格式,得到标准音乐作品,具体包括:
导入音频分析和处理库,从音乐作品文件中读取音频数据,并返回波形数组和原始采样率;将所述波形数组转换为单声道,得到单声道波型数组;将所述单声道波型数组使用所述原始采样率重新采样,得到重新采样的波形数组;将所述重新采样的波形数组保存为新文件,得到标准音乐作品;所述新文件为标准的数字音频格式;
将所述标准音乐作品进行特征提取,得到音乐特征向量,具体包括:
使用时频域分析的方法,将所述标准音乐作品分割为若干个短时窗口,对每个窗口进行傅里叶变换,得到标准音乐作品的频谱图,然后对所述频谱图进行滤波和归一化,得到标准音乐作品的节奏图;将所述节奏图通过深度信念网络进行特征提取,输出节奏特征向量;
使用钢琴卷方法,将所述标准音乐作品转换为MIDI格式,然后对MIDI文件进行解析,得到所述标准音乐作品的音符序列;将所述音符序列通过所述深度信念网络进行特征提取,输出和声特征向量;
将所述节奏特征向量和所述和声特征向量拼接成音乐特征向量。
3.根据权利要求1所述的基于区块链的音乐版权管理方法,其特征在于,所述将所述音乐特征向量进行编码,生成非同质化代币,具体包括:
计算音乐特征向量的SHA-256哈希值,作为数字指纹,具体包括:
导入计算哈希值的Python库,将所述音乐特征向量转换为字节数组;对所述字节数组计算SHA-256哈希值,表示音乐作品的数字指纹;将哈希值转换为十六进制字符串,所述十六进制字符串为长度为64的字符串;使用bin和int函数,将十六进制字符串转换为二进制字符串,所述二进制字符串由0和1组成的字符串,表示音乐作品的最终数字指纹;
为所述非同质化代币生成元数据文件,所述元数据文件为JSON格式的文件,包含所述非同质化代币的基本信息和所述数字指纹。
4.根据权利要求1所述的基于区块链的音乐版权管理方法,其特征在于,所述将所述非同质化代币部署到区块链,具体包括:
使用智能合约语言编写非同质化代币合约,具体包括:
引入依赖和定义合约,首先声明智能合约的许可证;其次指定智能合约使用的Solidity版本;然后导入指定标准和框架合约;最后定义合约;
存储结构和构造函数,首先定义私有映射;所述映射用于存储每个非同质化代币的唯一资源标识符;其次定义私有的无符号整数,表示当前非同质化代币的ID,初始值为0,记录和生成非同质化代币的ID,每次创建新的非同质化代币,变量就会加一;最后定义合约的构造函数,用来初始化合约的状态,调用了指定标准的构造函数,传入了两个参数,分别为非同质化代币的名称和符号;
铸造功能,首先定义公共函数,允许用户创建新的非同质化代币;它接收统一资源标识符作为参数,所述统一资源标识符指向非同质化代币的元数据;其次每次调用时,将当前非同质化代币的ID加一,代表一个新的唯一代币ID;然后调用指定标准的内部函数创建一个新的非同质化代币,将一个新的非同质化代币分配给调用者;然后调用本合约的内部函数,将新的非同质化代币的统一资源标识符设置为传入的参数;最后返回新创建的非同质化代币的ID;
设置和获取数字身份证,首先声明本合约的内部函数,所述本合约内部函数接受两个参数,分别为非同质化代币的ID和非同质化代币的统一资源标识符;其次设置条件判断语句,检查传入的非同质化代币的ID是否对应一个存在的非同质化代币,如果不是,抛出错误,提示统一资源标识符设置失败;然后将传入的非同质化代币的统一资源标识符存储在映射中;再次声明公共函数,所述公共函数输入非同质化代币的ID,返回非同质化代币的统一资源标识符;接着设置条件判断语句,检查传入的非同质化代币的ID是否对应一个存在的非同质化代币,如果不是,就会抛出错误,提示统一资源标识符设置失败;最后返回传入的非同质化代币的ID对应的非同质化代币的统一资源标识符;
将编写的智能合约部署到区块链,具体包括:
从Truffle框架的构建目录中导入之前定义的智能合约的名称,所述智能合约用于创建和管理音乐相关的非同质化代币;导出部署函数,所述函数是Truffle框架执行部署任务时调用的;将之前定义的智能合约部署到以太坊网络。
5.根据权利要求1所述的基于区块链的音乐版权管理方法,其特征在于,所述对所述音乐作品进行版权登记和验证,若验证通过,则进行版权交易和收益分配;若验证不通过,则拒绝请求,具体包括:
当用户上传音乐作品时,提供音乐作品的版权信息以及用户身份信息;对用户提供的信息进行验证;将其作为NFT的元数据,存储在区块链上;
当用户下载或播放音乐作品时,对音乐作品进行特征提取和编码,生成数字指纹,然后将其与区块链上的NFT进行比对,验证音乐作品的版权信息和使用权限;如果音乐作品的版权信息和使用权限与用户的请求相符,允许用户下载或播放音乐作品,并记录用户的使用情况,进行版权交易和收益分配;如果音乐作品的版权信息和使用权限与用户的请求不符,拒绝用户的请求。
6.基于区块链的音乐版权管理系统,其特征在于,所述系统包括:
音乐作品特征提取模块,用于获取音乐作品,将所述音乐作品进行特征提取,得到音乐特征向量;
非同质化代币生成模块,用于将所述音乐特征向量进行编码,生成非同质化代币;
区块链部署模块,用于将所述非同质化代币部署到区块链;
音乐作品功能实施模块,用于对所述音乐作品进行版权登记和验证,若验证通过,则进行版权交易和收益分配;若验证不通过,则拒绝请求。
7.根据权利要求6所述的基于区块链的音乐版权管理系统,其特征在于,所述音乐作品特征提取模块,具体包括:
预处理子模块,用于对所述音乐作品进行预处理,将所述音乐作品转换为标准的数字音频格式,得到标准音乐作品,具体包括:
导入音频分析和处理库,从音乐作品文件中读取音频数据,并返回波形数组和原始采样率;将所述波形数组转换为单声道,得到单声道波型数组;将所述单声道波型数组使用所述原始采样率重新采样,得到重新采样的波形数组;将所述重新采样的波形数组保存为新文件,得到标准音乐作品;所述新文件为标准的数字音频格式;
音乐特征向量生成子模块,用于将所述标准音乐作品进行特征提取,得到音乐特征向量,具体包括:
使用时频域分析的方法,将所述标准音乐作品分割为若干个短时窗口,对每个窗口进行傅里叶变换,得到标准音乐作品的频谱图,然后对所述频谱图进行滤波和归一化,得到标准音乐作品的节奏图;将所述节奏图通过深度信念网络进行特征提取,输出节奏特征向量;
使用钢琴卷方法,将所述标准音乐作品转换为MIDI格式,然后对MIDI文件进行解析,得到所述标准音乐作品的音符序列;将所述音符序列通过所述深度信念网络进行特征提取,输出和声特征向量;
将所述节奏特征向量和所述和声特征向量拼接成音乐特征向量。
8.根据权利要求6所述的基于区块链的音乐版权管理系统,其特征在于,所述非同质化代币生成模块,具体包括:
数字指纹生成子模块,用于计算音乐特征向量的SHA-256哈希值,作为数字指纹,具体包括:
导入计算哈希值的Python库,将所述音乐特征向量转换为字节数组;对所述字节数组计算SHA-256哈希值,表示音乐作品的数字指纹;将哈希值转换为十六进制字符串,所述十六进制字符串为长度为64的字符串;使用bin和int函数,将十六进制字符串转换为二进制字符串,所述二进制字符串由0和1组成的字符串,表示音乐作品的最终数字指纹;
元数据生成子模块,用于为所述非同质化代币生成元数据文件,所述元数据文件为JSON格式的文件,包含所述非同质化代币的基本信息和所述数字指纹。
9.根据权利要求6所述的基于区块链的音乐版权管理系统,其特征在于,所述区块链部署模块,具体包括:
智能合约编写子模块,用于使用智能合约语言编写非同质化代币合约,具体包括:
依赖引入和合约定义单元,首先声明智能合约的许可证;其次指定智能合约使用的Solidity版本;然后导入指定标准和框架合约;最后定义合约;
结构存储和函数构造单元,首先定义私有映射;所述映射用于存储每个非同质化代币的唯一资源标识符;其次定义私有的无符号整数,表示当前非同质化代币的ID,初始值为0,记录和生成非同质化代币的ID,每次创建新的非同质化代币,变量就会加一;最后定义合约的构造函数,用来初始化合约的状态,调用了指定标准的构造函数,传入了两个参数,分别为非同质化代币的名称和符号;
铸造功能单元,首先定义公共函数,允许用户创建新的非同质化代币;它接收统一资源标识符作为参数,所述统一资源标识符指向非同质化代币的元数据;其次每次调用时,将当前非同质化代币的ID加一,代表一个新的唯一代币ID;然后调用指定标准的内部函数创建一个新的非同质化代币,将一个新的非同质化代币分配给调用者;然后调用本合约的内部函数,将新的非同质化代币的统一资源标识符设置为传入的参数;最后返回新创建的非同质化代币的ID;
数字身份证获取单元,首先声明本合约的内部函数,所述本合约内部函数接受两个参数,分别为非同质化代币的ID和非同质化代币的统一资源标识符;其次设置条件判断语句,检查传入的非同质化代币的ID是否对应一个存在的非同质化代币,如果不是,抛出错误,提示统一资源标识符设置失败;然后将传入的非同质化代币的统一资源标识符存储在映射中;再次声明公共函数,所述公共函数输入非同质化代币的ID,返回非同质化代币的统一资源标识符;接着设置条件判断语句,检查传入的非同质化代币的ID是否对应一个存在的非同质化代币,如果不是,就会抛出错误,提示统一资源标识符设置失败;最后返回传入的非同质化代币的ID对应的非同质化代币的统一资源标识符;
合约部署区块链子模块,用于将编写的智能合约部署到区块链,具体包括:
从Truffle框架的构建目录中导入之前定义的智能合约的名称,所述智能合约用于创建和管理音乐相关的非同质化代币;导出部署函数,所述函数是Truffle框架执行部署任务时调用的;将之前定义的智能合约部署到以太坊网络。
10.根据权利要求6所述的基于区块链的音乐版权管理系统,其特征在于,所述音乐作品功能实施模块,具体包括:
版权登记子模块,用于当用户上传音乐作品时,提供音乐作品的版权信息以及用户身份信息;对用户提供的信息进行验证;将其作为NFT的元数据,存储在区块链上;
版权验证子模块,用于当用户下载或播放音乐作品时,对音乐作品进行特征提取和编码,生成数字指纹,然后将其与区块链上的NFT进行比对,验证音乐作品的版权信息和使用权限;如果音乐作品的版权信息和使用权限与用户的请求相符,允许用户下载或播放音乐作品,并记录用户的使用情况,进行版权交易和收益分配;如果音乐作品的版权信息和使用权限与用户的请求不符,拒绝用户的请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410232763.2A CN118037497A (zh) | 2024-03-01 | 2024-03-01 | 基于区块链的音乐版权管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410232763.2A CN118037497A (zh) | 2024-03-01 | 2024-03-01 | 基于区块链的音乐版权管理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118037497A true CN118037497A (zh) | 2024-05-14 |
Family
ID=90987308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410232763.2A Pending CN118037497A (zh) | 2024-03-01 | 2024-03-01 | 基于区块链的音乐版权管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118037497A (zh) |
-
2024
- 2024-03-01 CN CN202410232763.2A patent/CN118037497A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108595709B (zh) | 基于区块链的音乐原创性分析方法和装置 | |
CN108833460B (zh) | 基于区块链的音乐发布方法、装置及终端设备 | |
US20190155997A1 (en) | Content licensing platform, system, and method | |
CN103282931B (zh) | 包括旋律识别和选择退出的联合 | |
CN103314389B (zh) | 使用旋律标识的媒体权利管理 | |
US7612276B2 (en) | Method and system for synthesizing electronic transparent audio | |
Lester et al. | The dilemma of false positives: Making content id algorithms more conducive to fostering innovative fair use in media creation | |
CN107464111B (zh) | 基于音频的区块链钱包地址生成方法、支付方法、装置以及电子设备 | |
KR20230132334A (ko) | 블록체인 기반의 nft를 이용한 음원 거래 플랫폼을 제공하는 서버에서 수행되는 음원 nft 발급 서비스 제공 방법 | |
CN109146545A (zh) | 一种基于区块链向作品使用者发放奖励的方法及装置 | |
US20010029832A1 (en) | Information processing device, information processing method, and recording medium | |
US20190130033A1 (en) | Acquiring, maintaining, and processing a rich set of metadata for musical projects | |
Seeger | The Selective Protection of Musical Ideas: The" Creations" and the Dispossessed | |
WO2020015410A1 (zh) | 一种基于区块链向作品演绎者发放奖励的方法及装置 | |
US11481815B1 (en) | System and method for bidding on an asset in progress | |
Shawon et al. | DIUcerts DApp: a blockchain-based solution for verification of educational certificates | |
US20230196353A1 (en) | Systems and Methods for Robust Personalization with Applications to NFT Evolution and Generation of Art Remixes with Personalization | |
CN118037497A (zh) | 基于区块链的音乐版权管理方法及系统 | |
KR102568089B1 (ko) | 상호협업 기반 음악 콘텐츠 제작 서비스 제공 시스템 | |
Deng et al. | Computational copyright: Towards a royalty model for ai music generation platforms | |
KR102296779B1 (ko) | 예술인의 오디오 컨텐츠를 이용한 온라인 문학 작품 제공 방법 및 시스템 | |
CN110245188B (zh) | 一种基于区块链的作品列表存证方法、装置及系统 | |
Soni et al. | Music streaming using blockchain-blockics | |
Yamwaja et al. | DMS: An Architecture of a Decentralized-based Music Streaming Platform using Blockchain | |
US11995731B1 (en) | Method, apparatus, and computer-readable medium for artifact generation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |