CN114556473A - 自监督音高估计 - Google Patents

自监督音高估计 Download PDF

Info

Publication number
CN114556473A
CN114556473A CN202080072283.4A CN202080072283A CN114556473A CN 114556473 A CN114556473 A CN 114556473A CN 202080072283 A CN202080072283 A CN 202080072283A CN 114556473 A CN114556473 A CN 114556473A
Authority
CN
China
Prior art keywords
pitch
encoder
predicted
value
training
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
Application number
CN202080072283.4A
Other languages
English (en)
Inventor
M.塔吉利亚萨奇
M.韦尔米罗维奇
M.沙里菲
D.罗布雷克
C.弗兰克
B.格费尔勒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN114556473A publication Critical patent/CN114556473A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/03Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
    • G10L25/12Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being prediction coefficients
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • G10L25/51Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
    • G10L25/60Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination for measuring the quality of voice signals
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/003Changing voice quality, e.g. pitch or formants
    • G10L21/007Changing voice quality, e.g. pitch or formants characterised by the process used
    • G10L21/013Adapting to target pitch
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/27Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
    • G10L25/30Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique using neural networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/90Pitch determination of speech signals
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L2019/0001Codebooks
    • G10L2019/0011Long term prediction filters, i.e. pitch estimation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/90Pitch determination of speech signals
    • G10L2025/906Pitch tracking

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Artificial Intelligence (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Analysis (AREA)
  • Machine Translation (AREA)

Abstract

示例实施例涉及用于训练人工神经网络或其它机器学习编码器以准确预测半音或以其它方式对数标度的音高空间中的输入音频样本的音高的技术。示例方法可以包括通过将两个不同的音高位移应用于音频训练数据的样本,从该音频数据的样本生成两个训练样本。这可以通过将该音频数据的样本转换到频域然后使转换后的数据移位来完成。然后将这些已知的位移与通过将所述两个训练样本应用于编码器而生成的预测音高进行比较。然后基于比较来更新编码器,使得由编码器输出的相对音高在准确性方面得到改善。然后可以使用一个或更多个用绝对音高值标记的音频样本来校准训练过的编码器所生成的相对音高值。

Description

自监督音高估计
相关申请的交叉引用
本申请是2019年10月19日提交的第62/923,491号美国专利申请的继续申请,该美国专利申请的内容通过引用全部合并于此。
背景技术
在各种应用中检测音频信号中展示的声音的音高是有益的。例如,音高检测可以用于促进录制的音乐到活页乐谱的自动和/或辅助的翻译。在另一示例中,音频信号的音高的连续检测在训练人唱歌、演奏乐器、识别音高或执行某项其它任务时可以是有用的。
对于检测音高存在各种各样的方法。这些方法中的许多包括使用启发式算法来检测音频信号中的基频(例如,通过识别音频信号频谱中的峰值)。然而,此类方法在存在噪声或在音频信号中存在多个音高源的情况下可能表现不佳。
发明内容
在各种应用中以高时间和频率分辨率准确地预测音频信号中声音的音高是有益的。然而,以高时间和频率分辨率准确地确定音高的过程是困难的技术问题,尤其当音频信号中存在噪声(例如,代表其它音高的其它声音)时。可以应用各种监督机器学习技术来训练编码器执行音高预测。然而,生成足够数量的用“正确的”音高值进行注释以便执行此类监督技术的训练数据是困难的和/或昂贵的。当期望时域和频域的高分辨率时尤其如此。
在一个方面,本申请描述了一种用于训练音高预测编码器的方法。该方法涉及基于输入音频样本来生成第一训练样本。生成第一训练样本涉及将第一频移应用于输入音频样本。该方法还涉及基于输入音频样本来生成第二训练样本。生成第二训练样本涉及将第二频移应用于输入音频样本。第一频移和第二频移中的每个是正量、负量或零量,使得第一训练样本和第二训练样本中的至少一个表示输入音频样本的频移版本。该方法还涉及将第一训练样本和第二训练样本应用于编码器以生成第一预测音高值和第二预测音高值、以及基于音高误差项来确定编码器成本函数。音高误差项取决于:(i)第一预测音高值和第二预测音高值之间的第一差异,以及(ii)第一频移和第二频移之间的第二差异。该方法还涉及基于编码器成本函数来修改编码器。
在另一方面,本申请描述了一种针对音频样本预测音高的方法。该方法涉及获得音频样本、以及将音频样本应用于编码器以为音频样本生成预测的相对音高值或预测的绝对音高值中的至少一个。编码器已经根据上述用于训练音高预测编码器的方法进行了训练。
在又一方面,本申请描述了系统。该系统包括控制器和其上存储有程序指令的非暂时性计算机可读介质,所述程序指令在由控制器运行时使控制器执行上述任何方法。
在又一方面,本申请描述了一种在其上存储有程序指令的非暂时性计算机可读介质,所述程序指令在由计算设备运行时使计算设备执行上述任何方法。
前面的概述仅是说明性的并且不旨在以任何方式进行限制。除了上述说明性的方面、实施例和特征之外,另外的方面、实施例和特征将通过参照附图和以下详细描述变得明显。
附图说明
图1示出了根据一个或更多个示例实施例的计算设备的示意图。
图2示出了根据一个或更多个示例实施例的服务器设备集群的示意图。
图3A描绘了根据一个或更多个示例实施例的人工神经网络(ANN)架构。
图3B描绘了根据一个或更多个示例实施例训练ANN。
图4A描绘了根据一个或更多个示例实施例的卷积神经网络(CNN)架构。
图4B描绘了根据一个或更多个示例实施例的卷积。
图5描绘了根据一个或更多个示例实施例的用于训练音高预测编码器的系统。
图6示出了根据一个或更多个示例实施例的用于分发音高预测编码器模型的系统。
图7是根据一个或更多个示例实施例的用于训练音高预测编码器的方法的流程图。
图8是根据一个或更多个示例实施例的用于使用训练过的编码器来预测音高的方法的另一流程图。
图9是示出根据这里呈现的至少一些实施例布置的用于在计算系统上运行计算机进程的计算机程序的概念性局部视图的示意图。
具体实施方式
这里描述了示例方法、设备和系统。应理解,这里使用词语“示例”和“示例性”来表示“用作示例、实例或说明”。这里被描述为“示例”或“示例性”的任何实施例或特征未必被解释为相比于其它实施例或特征是优选的或是有益的。在不背离这里呈现的主题的范围的情况下,可以利用其它实施例,并且可以做出其它改变。
这里提供包括自监督技术的示例实施例,该自监督技术用于训练编码器(或多个编码器)从音频样本预测音高值。为了根据示例技术生成训练样本,使用特定音频样本(例如,来自音频训练数据的集合的一段音频)来生成两个训练样本,这两个训练样本之一或两者已经音高移位了已知量(例如,从均匀分布中随机选择的量)。然后将这两个训练样本应用于编码器以生成各自的音高估计。预测音高的差异与所应用的(多个)音高位移的已知差异之间的差异用于更新或以其它方式训练编码器。因此,在多次这样的训练更新之后,编码器可以准确地预测音高的相对差异。
以这种方式训练的编码器可以用于通过校准过程来确定音频样本的绝对音高,该校准过程使用具有已知音高值的一个或更多个音频样本。使用编码器来预测音频样本的各自的音高值,然后结合编码器预测的音高值来使用已知的音高值以为编码器生成偏移、缩放和/或其它偏差值。然后,通过将(多个)偏差值应用到由编码器基于新音频样本生成的音高值,可以针对该新音频样本确定绝对音高值。
编码器可以包括人工神经网络、卷积神经网络、循环神经网络、支持向量机、n最近邻分类器、决策树、回归树、决策和/或回归树的合集(例如,回归森林)或另一些算法或算法组合。编码器可以接收输入音频样本的时域表示(例如,已经移位为零均值或以其它方式预处理的一段音频信号)。
附加地或替代地,编码器可以接收输入音频样本的频域表示。例如,编码器可以接收已使用常数Q变换进行变换的输入音频样本的版本。常数Q变换还可以提供的好处在于,其输出已经在关于频率的对数标度上间隔开,使得使已经根据常数Q变换进行变换的训练样本频移可以包括索引移位、裁剪、零填充或其它简单操作。
编码器和/或编码器训练技术可以以各种方式来扩展。例如,编码器还可以输出置信度值,该置信度值表示输入样本的预测音高的置信程度或可变性。这样的置信度输出还可以用于预测音频样本是表示(多个)浊音还是清音。
当训练编码器时,非线性函数可以应用于音高差异误差或其它误差项。可以这样做,例如,以防止清音音频样本或音频训练数据的其它难以预测部分对训练过的编码器的权重产生过大影响。对于幅度高于阈值的值,这样的非线性函数可以线性地变化,对于幅度低于阈值的值,这样的非线性函数可以非线性地变化。例如,非线性函数可以是休伯(Huber)损失函数。
通过包括与基于预测音高对训练中的音频样本进行重构相关的误差项,可以改善编码器训练过程(例如,关于通过该过程训练的编码器的预测准确性,关于收敛速度或其它训练率)。例如,从一对训练音频样本确定的每个预测音高可以应用于解码器以生成相应的重构音频谱或信号。可以比较这些重构音频谱(例如,使用平方误差之和、或某个其它损失函数),并基于比较来更新解码器。也可以基于该比较结合预测音高差异和所应用的(多个)频移的差异之间的比较来更新编码器。
附加地或替代地,可以通过用噪声增强训练样本来改善编码器训练过程。这样的噪声可以包括浊音音高声音。通过以这种方式增强训练样本,当输入音频样本中存在噪声(包括包含音高的噪声(例如,来自背景中的乐器的噪声))时,可以将编码器训练得更准确。在特定示例中,可以针对(i)输入音频样本的两个频移版本以及(ii)输入音频样本的这两个频移版本的已经添加了噪声信号(例如,包含背景音高的噪声信号)的版本来预测音高值。然后可以基于成本函数来更新编码器,该成本函数包括与训练样本之间的每个成对比较对应的误差项(例如,与针对无噪声音频样本预测的音高之间的差异相关的第一项、与针对无噪声的第一音频样本和有噪声的第二音频样本预测的音高之间的差异相关的第二项、与针对有噪声的第一音频样本和无噪声的第二音频样本预测的音高之间的差异相关的第三项、以及与针对有噪声的音频样本预测的音高之间的差异相关的第四项)。
通过在适当的情况下参照附图阅读以下详细描述,这些以及其它方面、优点和替代方案将对本领域普通技术人员变得明显。此外,应理解,在此概要部分和这里档其它地方提供的描述旨在通过示例而非限制的方式说明所要求保护的主题。
I.示例计算设备和基于云的计算环境
以下实施例描述了可以采用机器学习和所公开的ANN实施方式的示例计算设备和系统的架构方面和操作方面以及其特征和优点。
图1是例示计算系统100的简化框图,其示出了被安排为根据这里的实施例操作的计算设备中可以包括的一些部件。计算系统100可以是客户端设备(例如,由用户主动操作的设备)、服务器设备(例如,向客户端设备提供计算服务的设备)或某个其它类型的计算平台。一些服务器设备可以不时地作为客户端设备操作以便执行特定操作,一些客户端设备可以合并服务器特征。
在该示例中,计算系统100包括处理器102、存储器104、网络接口106和输入/输出单元108,所有这些都可以通过系统总线110或类似机制联接。在一些实施例中,计算系统100可以包括其它部件和/或外围设备(例如,可拆卸存储、打印机等)。
处理器102可以是任何类型的计算机处理元件中的一个或更多个,诸如中央处理单元(CPU)、协处理器(例如,数学、图形或加密协处理器)、数字信号处理器(DSP)、网络处理器和/或执行处理器操作的集成电路或控制器的形式。在一些情况下,处理器102可以是一个或更多个单核处理器。在其它情况下,处理器102可以是具有多个独立处理单元的一个或更多个多核处理器。处理器102还可以包括用于临时存储正在运行的指令和相关数据的寄存器存储器、以及用于临时存储最近使用的指令和数据的高速缓冲存储器。
存储器104可以是任何形式的计算机可用存储器,包括但不限于随机存取存储器(RAM)、只读存储器(ROM)和非易失性存储器。这可以包括闪速存储器、硬盘驱动器、固态驱动器、可重写紧凑盘(CD)、可重写数字视频盘(DVD)和/或磁带存储,仅作为几个示例。计算系统100可以包括固定存储器以及一个或更多个可移动存储器单元,后者包括但不限于各种类型的安全数字(SD)卡。因此,存储器104既表示主存储器单元,也表示长期存储。其它类型的存储器可以包括生物存储器。存储器104可以存储程序指令和/或程序指令可以对其进行操作的数据。举例来说,存储器104可以将这些程序指令存储在非暂时性计算机可读介质上,使得这些指令可由处理器102运行以执行本说明书或附图中公开的任何方法、过程或操作。
如图1所示,存储器104可以包括固件104A、内核104B和/或应用104C。固件104A可以是用于引导或以其它方式启动计算系统100的一些或全部的程序代码。内核104B可以是操作系统,包括用于存储器管理、进程的调度和管理、输入/输出和通信的模块。内核104B还可以包括允许操作系统与计算系统100的硬件模块(例如,存储器单元、网络接口、端口和总线)通信的设备驱动器。应用104C可以是一个或更多个用户空间软件程序(诸如网络浏览器或电子邮件客户端)以及由这些程序使用的任何软件库。在一些示例中,应用104C可以包括一个或更多个神经网络应用和其它基于深度学习的应用。存储器104还可以存储由这些和其它程序和应用使用的数据。
网络接口106可以采用一个或更多个有线接口的形式,诸如以太网(例如,快速以太网、千兆以太网等)。网络接口106还可以支持通过一种或更多种非以太网介质(诸如同轴电缆或电力线)或通过广域介质(诸如同步光网络(SONET)或数字用户线(DSL)技术)的通信。网络接口106还可以采用一个或更多个无线接口的形式,诸如IEEE 802.11(Wifi)、
Figure BDA0003596063070000061
全球定位系统(GPS)或广域无线接口。然而,其它形式的物理层接口和其它类型的标准或专有通信协议可以用在网络接口106上。此外,网络接口106可以包括多个物理接口。例如,计算系统100的一些实施例可以包括以太网、
Figure BDA0003596063070000062
和Wifi接口。
输入/输出单元108可以促进用户和外围设备与计算系统100和/或其它计算系统的交互。输入/输出单元108可以包括一种或更多种类型的输入设备,诸如键盘、鼠标、一个或更多个触摸屏、传感器、生物特征传感器等。类似地,输入/输出单元108可以包括一种或更多种类型的输出设备,诸如屏幕、监视器、打印机和/或一个或更多个发光二极管(LED)。附加地或替代地,计算系统100可以例如使用通用串行总线(USB)或高清晰度多媒体接口(HDMI)端口接口与其它设备通信。
在一些实施例中,可以部署计算系统100的一个或更多个实例以支持集群架构。这些计算设备的确切物理位置、连接性和配置对于客户端设备可以是未知的和/或不重要的。因此,计算设备可以被称为“基于云的”设备,其可以安置在各种远程数据中心位置。此外,计算系统100可以实现这里描述的实施例的性能,包括使用神经网络或其它技术来训练编码器从音频数据预测音高。
图2描绘了根据示例实施例的基于云的服务器集群200。在图2中,计算设备(例如,计算系统100)的一个或更多个操作可以分布在服务器设备202、数据存储204和路由器206之间,所有这些都可以通过本地集群网络208连接。服务器集群200中的服务器设备202、数据存储204和路由器206的数量可以取决于分配给服务器集群200的(多个)计算任务和/或应用。在一些示例中,服务器集群200可以执行这里描述的一个或更多个操作,包括使用神经网络和/或其它机器学习技术来训练可以检测音频数据中的音高(例如,声音的音高)的模型。
服务器设备202可以被配置为执行计算系统100的各种计算任务。例如,一个或更多个计算任务可以分布在服务器设备202中的一个或更多个之间。在这些计算任务可以并行执行的程度上,这样的任务分配可以减少完成这些任务并返回结果的总时间。为了简单起见,服务器集群200和各个服务器设备202都可以被称为“服务器设备”。该命名法应被理解为意味着一个或更多个不同的服务器设备、数据存储设备和集群路由器可以涉及服务器设备操作。
数据存储204可以是包括驱动器阵列控制器的数据存储阵列,该驱动器阵列控制器被配置为管理对硬盘驱动器和/或固态驱动器组的读取和写入访问。驱动器阵列控制器可以单独或与服务器设备202联合被配置为管理存储在数据存储204中的数据的备份或冗余副本,以抵抗驱动器故障或阻止服务器设备202中的一个或更多个访问集群数据存储204的单元的其它类型故障进行保护。可以使用除驱动器之外的其它类型的存储器。
路由器206可以包括被配置为向服务器集群200提供内部和外部通信的联网装备。例如,路由器206可以包括一个或更多个分组交换和/或路由设备(包括交换机和/或网关),该一个或更多个分组交换和/或路由设备被配置为提供(i)服务器设备202和数据存储204之间经由集群网络208的网络通信、和/或(ii)服务器集群200和其它设备之间经由到网络212的通信链路210的网络通信。
此外,集群路由器206的配置可以至少部分地基于服务器设备202和数据存储204的数据通信需要、本地集群网络208的延迟和吞吐量、通信链路210的延迟、吞吐量和成本和/或可能对系统架构的成本、速度、容错性、弹性、效率和/或其它设计目标有贡献的其它因素。
作为可能的示例,数据存储204可以包括任何形式的数据库,诸如结构化查询语言(SQL)数据库。各种类型的数据结构可以将信息存储在这样的数据库中,包括但不限于表、数组、列表、树和元组。此外,数据存储204中的任何数据库可以是整体式的或分布在多个物理设备上。
服务器设备202可以被配置为向数据存储204发送数据以及从数据存储204接收数据。这种发送和检索可以分别采用SQL查询或其它类型的数据库查询以及这些查询的输出的形式。也可以包括附加的文本、图像、视频和/或音频。此外,服务器设备202可以将接收到的数据组织成网页表示。这样的表示可以采用标记语言的形式,诸如超文本标记语言(HTML)、可扩展标记语言(XML)或某种其它标准化的或专有的格式。此外,服务器设备202可以具有运行各种类型的计算机化脚本语言(诸如但不限于Perl、Python、PHP超文本预处理器(PHP)、活动服务器页面(ASP)、JavaScript等)的能力。以这些语言编写的计算机程序代码可以促进向客户端设备提供网页以及客户端设备与网页的交互。
II.人工神经网络
A.示例ANN
人工神经网络(ANN)是一种计算模型,其中各自并行工作且无需中央控制的多个简单单元可以组合起来解决复杂问题。ANN被表示为排列成多个层的多个节点,相邻层的节点之间具有连接。
图3A中示出了示例ANN 300。特别地,ANN 300表示前馈多层神经网络,但类似的结构和原理用于例如卷积神经网络(CNN)、循环神经网络和递归神经网络。ANN 300可以表示被训练来执行特定任务(诸如图像处理技术(例如,分割、语义分割、图像增强)或这里描述的学习音高训练技术)的ANN。在进一步的示例中,ANN 300可以学习执行其它任务,诸如计算机视觉、风险评估等。
如图3A所示,ANN 300由四层构成:输入层304、隐藏层306、隐藏层308和输出层310。输入层304的三个节点分别接收X1、X2和X3作为初始输入值302。输出层310的两个节点分别产生Y1和Y2作为最终输出值312。照此,ANN 300是全连接网络,因为除了输入层304之外的每一层的节点都接收来自前一层的所有节点的输入。
节点对之间的实线箭头表示中间值流经的连接,并且每个都与应用于相应中间值的相应权重相关联。每个节点对其输入值及其相关权重(例如,0和1之间的值,包括0和1)执行操作以产生输出值。在一些情况下,该操作可以涉及每个输入值和相关权重的乘积的点积和。激活函数可以应用于点积和的结果以产生输出值。其它操作是可能的。
例如,如果节点在n个连接上以相应的权重{w1,w2,...,wn}接收输入值{x1,x2,...,xn},则点积和d可以被确定为:
Figure BDA0003596063070000091
其中b是特定于节点或特定于层的偏差。
值得注意的是,ANN 300的全连接属性可以用于通过向一个或更多个权重赋予0值来有效地表示部分连接的ANN。类似地,偏差也可以被设为0以消除b项。
激活函数(诸如逻辑函数)可以用于将d映射到0和1之间(包括0和1)的输出值y:
Figure BDA0003596063070000092
可以代替地使用除逻辑函数以外的函数,诸如sigmoid或双曲正切(tanh)函数。
然后,y可以被用在每个节点的输出连接上,并将通过其各自的权重被修改。特别地,在ANN 300中,输入值和权重从左到右应用于每一层的节点直到产生最终输出值312。如果ANN 300已被完全训练,则最终输出值312是对ANN 300已被训练来解决的问题的建议解决方案。为了获得有意义、有用且适度准确的解决方案,ANN 300需要至少一定程度的训练。
B.训练
训练ANN可以涉及向ANN提供某种形式的监督训练数据,即输入值和期望的或真值(ground truth)输出值的集合。例如,监督训练可以使ANN能够执行非语义任务,这可以涉及提供训练数据集以确定期望的表示。对于ANN 300,该训练数据可以包括与输出值配对的m个集合的输入值。更正式地,训练数据可以被表示为:
Figure BDA0003596063070000101
其中i=1...m,并且
Figure BDA0003596063070000102
Figure BDA0003596063070000103
是X1,i、X2,i和X3,i的输入值的所期望的输出值。
训练过程涉及将来自此类集合的输入值应用于ANN 300并产生相关输出值。损失函数可以用于评估所产生的输出值与真值输出值之间的误差。在一些情况下,该损失函数可以是差异之和、均方误差或某个其它度量。在一些情况下,为所有m个集合确定误差值,并且误差函数涉及计算这些值的聚合(例如,平均值)。
一旦确定了误差,就更新连接上的权重以尝试减少误差。简单来说,这个更新过程应奖励“好”权重并惩罚“坏”权重。因此,更新应以为训练数据的未来迭代带来更低误差的方式通过ANN 300分布因误差的“责备(blame)”。例如,更新过程可以涉及修改ANN 300的至少一个权重,使得ANN 300对训练数据的后续应用生成与对应于训练数据的真值掩码更紧密匹配的新输出。
训练过程继续将训练数据应用于ANN 300,直到权重收敛。当误差小于阈值或在接连的训练迭代之间误差的变化足够小时,发生收敛。此时,ANN 300被称为“训练过的”,并且可以应用于新的输入值集合,以便预测未知的输出值。当被训练来执行图像处理技术时,ANN 300可以产生输入图像的输出,所述输出与为这些输入图像创建的真值(即,期望的结果)非常相似。
用于ANN的许多训练技术利用某种形式的反向传播。在反向传播期间,将输入信号通过网络前向传播到输出,然后相对于目标变量计算网络误差并朝输入反向地反向传播所述网络误差。特别地,反向传播通过ANN 300从右到左一次一层地分布误差。因此,首先更新隐藏层308和输出层310之间的连接的权重,其次更新隐藏层306和隐藏层308之间的连接的权重,以此类推。这种更新基于激活函数的导数。
为了进一步解释误差确定和反向传播,查看实际过程的示例是有帮助的。然而,除了在最简单的ANN上以外,反向传播的表示可能变得相当复杂。因此,图3B引入了非常简单的ANN 330,以便提供反向传播的说明性示例。
表1
权重 节点 权重 节点
w<sub>1</sub> I1,H1 w<sub>5</sub> H1,O1
w<sub>2</sub> I2,H1 w<sub>6</sub> H2,O1
w<sub>3</sub> I1,H2 w<sub>7</sub> H1,O2
w<sub>4</sub> I2,H2 w<sub>8</sub> H2,O2
ANN 330由三层(输入层334、隐藏层336和输出层338)构成,每一层具有两个节点。初始输入值332被提供给输入层334,并且输出层338产生最终输出值340。权重已被分配给每个连接,并且在一些示例中,偏差(例如,图3B所示的b1、b2)也可以应用于隐藏层336中每个节点的净输入。为清楚起见,表1将权重映射到具有应用这些权重的连接的节点对。作为示例,w2应用于节点I2和H1之间的连接,w7应用于节点H1和O2之间的连接,以此类推。
训练ANN 330的目标是经过一定数量的前馈和反向传播迭代来更新权重,直到最终输出值340足够接近指定的期望输出。注意,单个训练数据集合的使用仅针对那个集合有效地训练ANN 330。如果使用多个训练数据集合,也将根据那些集合来训练ANN 330。
1.示例前馈传递
为了启动前馈传递,计算隐藏层336中每个节点的净输入。从网络输入中,可以通过应用激活函数找到这些节点的输出。对于节点H1,网络输入netH1为:
netH1=w1X1+w2X2+b1 (4)
向这个输入应用激活函数(这里是逻辑函数)确定节点H1的输出,outH1为:
Figure BDA0003596063070000111
对于节点H2遵循相同的过程,也可以确定输出outH2。前馈迭代的下一步是对输出层338的节点执行相同的计算。例如,节点O1的净输入netO1为:
netO1=w5outH1+w6outH2+b2 (6)
因此,节点O1的输出outO1为:
Figure BDA0003596063070000112
对于节点O2遵循相同的过程,可以确定输出outO2。此时,可以基于损失函数来确定总误差Δ。例如,损失函数可以是输出层508中的节点的平方误差之和。换言之:
Figure BDA0003596063070000121
每一项中的乘法常数
Figure BDA0003596063070000122
用于简化反向传播期间的微分。因为总结果无论如何都会按学习率被缩放,所以该常数不会对训练产生负面影响。无论如何,此时,前馈迭代完成并且反向传播开始。
2.反向传播
如上所述,反向传播的目标是使用Δ(即基于损失函数确定的总误差)来更新权重,使得它们在未来的前馈迭代中贡献更少的误差。作为示例,考虑权重w5。目标涉及确定w5的变化对Δ有多少影响。这可以被表示为偏导数
Figure BDA0003596063070000123
使用链式法则,该项可以被扩展为:
Figure BDA0003596063070000124
因此,到w5的变化对Δ的影响等于(i)到outO1的变化对Δ的影响、(ii)到netO1的变化对outO1的影响、以及(iii)到w5的变化对netO1的影响的乘积。这些乘法项中的每一项可以被独立地确定。直观地说,这个过程可以认为是分离出w5对netO1的影响、netO1对outO1的影响和outO1对Δ的影响。
对于馈送到输出层338的其它权重,可以重复这个过程。注意,直到在反向传播结束时确定了对所有权重的更新,才更新权重。然后,在下一次前馈迭代之前更新所有权重。
在计算对剩余权重w1、w2、w3和w4的更新之后,反向传播传递向隐藏层336继续。对于馈送到输出层338的其它权重,可以重复这个过程。此时,反向传播迭代结束,并且所有权重都已更新。ANN 330可以通过后续的前馈和反向传播迭代继续进行训练。在一些情况下,在经过几次前馈和反向传播迭代(例如,数千次迭代)之后,可以减少误差以产生接近原始期望结果的结果。那时,Y1和Y2的值将接近目标值。如所示出的,通过使用可微分的损失函数,ANN 330输出的预测与期望结果相比的总误差可以被确定并用于相应地修改ANN 330的权重。
在一些情况下,如果调整系统的超参数(例如,偏差b1和b2以及学习率α),则可以用更少的迭代来完成同等量的训练。例如,将学习率设为更接近特定值可以导致错误率更快地降低。此外,偏差可以作为学习过程的部分以与更新权重的方式类似的方式来更新。
无论如何,ANN 330仅是简化的示例。可以以被调整来解决特定的问题或目标的输入层和输出层的每个中的节点数量来开发任意复杂的ANN。此外,可以使用多于一个的隐藏层,并且每个隐藏层中可以有任意数量的节点。
III.卷积神经网络
卷积神经网络(CNN)类似于ANN,因为CNN可以由若干层节点构成,具有可能的每层偏差和这若干层节点之间的加权连接。权重和偏差可以通过上面讨论的前馈和反向传播过程来更新。损失函数可以用于将前馈处理的输出值与期望的输出值进行比较。
另一方面,CNN通常以初始输入值从一个或更多个图像导出这一明确假设来设计。在一些实施例中,图像块(image patch)中每个像素的每个颜色通道是单独的初始输入值。假设每个像素有三个颜色通道(例如,红色、绿色和蓝色),即使是较小的32x 32像素块也将为第一隐藏层中的每个节点产生3072个传入权重。显然,使用朴素的ANN进行图像处理可能导致非常大且复杂的模型,训练该模型将会花费很长时间。
相反,CNN被设计为利用在几乎所有图像中发现的固有结构。特别地,CNN中的节点仅连接到前一层中的少数节点。这种CNN架构可以被认为是三维的,其中节点排列在具有宽度、高度和深度的块中。例如,前面提到的具有3个颜色通道的32x32像素块可以排列成具有32个节点的宽度、32个节点的高度和3个节点的深度的输入层。
图4A中示出了示例CNN 400。将表示为像素X1...Xm的初始输入值402提供给输入层404。如上所讨论的,输入层404可以具有三个维度,这三个维度基于像素X1...Xm的颜色通道的宽度、高度和数量。输入层404将值提供到特征提取层的一个或更多个集合中,每个集合包含卷积层406、RELU层408和池化层410的实例。将池化层410的输出提供给一个或更多个分类层412。最终输出值414可以排列在表示初始输入值402的简明表征的特征向量中。
卷积层406可以通过围绕这些输入值的三维空间排列滑动一个或更多个滤波器来变换其输入值。滤波器由应用于节点的偏差和节点之间的连接的权重表示,并且一般具有比输入值的宽度和高度小的宽度和高度。每个滤波器的结果可以是输出值的二维块(被称为特征图),其中宽度和高度可以具有与输入值的大小相同的大小,或者这些维度中的一个或更多个可以具有不同的大小。每个滤波器输出的组合导致深度维度上的多层特征图,其中每一层表示滤波器之一的输出。
应用滤波器可以涉及计算滤波器中的条目与输入值的二维深度切片之间的点积和。这个的示例在图4B中示出。矩阵420表示卷积层的输入,因此可以是例如图像数据。卷积运算将滤波器422叠加在矩阵420上以确定输出424。例如,当滤波器422位于矩阵420的左上角并且计算每个条目的点积和时,结果为4。这被放置在输出424的左上角。
回到图4A,CNN在训练期间学习滤波器,使得这些滤波器最终可以识别输入值中特定位置的某些类型的特征。作为示例,卷积层406可以包括滤波器,该滤波器最终能够检测从其导出初始输入值402的图像块中的边缘和/或颜色。被称为感受野的超参数确定卷积层406和输入层404中每个节点之间的连接数。这允许每个节点专注于输入值的子集。
RELU层408将激活函数应用于卷积层406提供的输出。实际上,已确定了整流线性单元(RELU)函数或其变体似乎在CNN中提供强大的结果。RELU函数是定义为f(x)=max(0,x)的简单的阈值函数。因此,当x为负时输出为0,当x为非负时输出为x。RELU函数的平滑、可微分的近似是softplus函数。它被定义为f(x)=log(1+ex)。尽管如此,也可以在这层中使用其它函数。
池化层410通过对来自RELU层408的输出的每个二维深度切片进行下采样来减小数据的空间大小。一种可能的方法是将步长为2的2x2滤波器应用于深度切片的每个2x2块。这将使每个深度切片的宽度和高度减小2倍,因此使数据的总大小减小75%。
分类层412以特征向量的形式计算最终输出值414。作为示例,在被训练成图像分类器的CNN中,特征向量中的每个条目都可以对图像块包含特定类别项目(例如,人脸、猫、海滩、树等)的可能性进行编码。
在一些实施例中,存在特征提取层的多个集合。因此,池化层410的实例可以向卷积层406的实例提供输出。此外,对于池化层410的每个实例,可以存在卷积层406和RELU层408的多个实例。
CNN 400表示可用于图像处理的一般结构。卷积层406和分类层412与ANN 300中的层类似地应用权重和偏差,并且这些权重和偏差可以在反向传播期间更新,使得CNN 400可以学习。另一方面,RELU层408和池化层410一般应用固定操作,因此可能不学习。
与ANN不同,CNN可以包括与这里的示例所示不同数量的层,并且这些层中的每一层可以包括不同数量的节点。因此,CNN 400仅出于说明的目的,并且不应被视为限制CNN的结构。
IV.自监督音高估计
作为声音的感知属性,音高既是相对的又是密集的,因为音高能够实现有序化以区分高低声音,并且具有不同音高的源可以被混合以产生不同于单个统一音调的和弦。音高也被归于独立于音高来源的声音。例如,无论是在吉它上还是在钢琴上弹奏音符A4,音符A4都被感知为相同的音高。
音高通常对应于基频(fo),其是最低谐波的频率。然而,前者是感知属性,而后者是基础音频信号的物理属性。虽然存在一些值得注意的例外(例如,谢泼德音调(Shepardtone)、三全音悖论或一些听觉错觉),但该对应关系适用于局部周期性信号的广泛类别,其代表对这里进一步描述的音频信号的良好抽象。
单声音频中的音高估计可以在范围从音乐信息检索到语音分析的几个领域具有重要意义。传统上,提出了简单的信号处理流水线,其在时域、频域或两者中工作,通常接下来是后处理算法来平滑音高轨迹。直到最近,机器学习技术还不能胜过针对音高估计的手工制作的信号处理流水线。这是由于缺乏带注释的数据,带注释的数据在训练完全监督模型所需的时间和频率分辨率下特别冗长且难以获得。
为了克服这些限制,提出了综合生成的数据集,其通过在将基频设为目标真值的同时重新综合单声音乐轨迹来获得。使用该训练数据,一些技术在同一数据集上进行评估时能够获得最先进的结果,胜过信号处理基线,尤其是在有噪声的条件下。然而,这些技术需要综合生成的数据集才能够生成可识别音高的模型。
示例实施例从不同的角度解决了缺乏带注释的数据的问题,并且不依赖于综合生成的数据集。具体地,这里提出的示例技术可以使用自监督来定义辅助任务(也称为代理任务),该辅助任务可以以完全无监督的方式来学习。为了设计代理任务,一些技术可以涉及最初观察到与两个音符之间的频率间隔相关的相对音高与估计与实际基频相关的绝对音高相比可以更容易被人耳估计。因此,基于上述观察,一些示例涉及实现自监督音高估计(SPICE),其被设计以解决与人耳类似的音高检测任务。
一些示例系统可以包括配置有一个或更多个卷积编码器的网络架构,该一个或更多个卷积编码器可以产生单个标量嵌入。特别地,当音高以对数标度(即,以等程半音阶的半音为单位)表示时,系统可以能够开发可将单个标量值线性地映射到音高的模型。为了开发该模型,系统最初可以将相同信号(例如,音频样本)的两个版本馈送到编码器,其中一个版本是另一个版本的按随机但已知的偏移量的音高移位版本。照此,可以使用损失函数,其使标量嵌入之间的差异与已知的音高差异成比例。收敛后,该模型可以仅依靠自监督来估计相对音高。在一些实施例中,为了将相对音高转换为绝对音高,可以使用小的综合生成的数据集来执行校准步骤,这可以使模型能够产生绝对音高而无需访问任何手动标记的数据集。
在生成的模型处接收的输入(例如,音频样本)可以是在由常数Q变换(CQT)定义的域中变换的信号,其可以用于分析音高。特别地,CQT滤波器组可以用于计算具有一个或更多个小波的小波变换,该一个或更多个小波可以有效地用于表示局部周期性信号类别。当每倍频程的滤波器数量(也称为品质因数)足够大时,小波可以具有与音阶变量的对数相关的可识别音高。结果,音高移位可以被表示为由CQT引起的沿对数间隔的频率轴的简单平移。该属性也适用于无法为其定义基频的非谐波或有噪声的音频信号。例如,及时拉伸信号可以产生音高移位的感觉,尽管没有基频,但这种感觉在CQT域中可以被观察到。
音高估计的另一个重要方面涉及确定基础信号是浊音还是清音。代替停靠手工制作的阈值机制,示例系统(例如,模型)可以以能够学习音高估计的置信水平的方式得到增强。例如,模型可以合并简单的全连接层,该全连接层可以接收编码器的倒数第二层作为输入,并随后产生第二标量值,该第二标量值被训练以匹配音高估计误差。
在一些实施例中,系统可以实现自监督音高估计模型,该模型可以在无需访问任何被标记的数据集的情况下进行训练。特别地,系统可以使用自监督机制来估计音高估计的置信度,这可以直接用于语音检测。例如,音高估计可以用于检测使用该模型的智能电话或另一计算设备的用户的语音。照此,生成的模型可以针对公开可用的单声数据集进行评估,这可以表明该模型尽管无法访问真值标签但可以胜过手工制作的基线。该模型在有噪声的条件下(诸如当除了单声歌声之外还存在背景音乐时)也可以良好地操作。
V.示例系统
图5描绘了根据一个或更多个示例实施例的用于训练音高预测编码器的系统。在示例实施例中,系统500包括音频样本502、音频训练样本504A、504B、编码器506A、506B、解码器508A、508B、音高移位误差510、音高损失512、置信度损失514、重构损失516、音高头518A、518B、置信度头520A、520B。在其它实施例中,系统500可以包括可用于训练一个或更多个音高预测编码器的更多或其它部件。
系统500可以由配置为执行这里描述的操作的一个或更多个计算设备(例如,图1所示的计算系统100)来实现。例如,可以在编码器506A、506B的训练过程期间使用计算设备。系统500可以被配置为开发模型或作为配置为检测音频数据内的音高的模型来操作。照此,系统500可以用于表示这里描述的一个或更多个模型。
系统500可以接收任意长度的音频轨道作为输入(例如,音频样本502),随后将估计的音高频率的时间序列与估计的置信度的指示一起输出。估计的置信度可以用于区分其中未明确定义音高的清音帧与浊音帧(例如,从设备的用户获得)。在一些情况下,系统500可以接收常数Q变换(CQT)的各个帧作为输入,而不是直接消耗音频数据。特别地,CQT表示可以近似对应于由以下小波族定义的小波滤波器组的输出:
Figure BDA0003596063070000173
其中Q表示每倍频程(octave)的滤波器数量,以及
Figure BDA0003596063070000171
其中fbase是最低频率箱(bin)的频率,Fmax是CQT箱的数量。小波滤波器的傅里叶变换可以被如下表示:
Figure BDA0003596063070000172
在一些实施例中,当Ψ(f)的中心频率被归一化为1时,每个滤波器以频率λk为中心并且具有等于λk/Q的带宽。结果,如果考虑具有索引(k1)和(k2)的两个滤波器,则对应小波之一将是另一个的音高移位版本,如音频训练样本504A、504B所表示的那样。那,
Δk=k2-k1=Q·log2α (13)
其中α=λk2k1
特别地,每个音频训练样本504A、504B可以表示音频样本502的频移。每个训练样本504A、504B相对于音频样本502的位移可以是已知的零、正的或负的量。因此,对于可以被表示为小波展开的局部周期信号类别,CQT域中(Δk)个箱的平移可以与因子(α)的音高位移相关。因为将音高位移映射到简单平移的这个关键属性可能不适用于另一些音频前端(例如,mel频谱图),所以对于一些常数c和中断频率(fbreak),频率(以Hz为单位)和mel单位之间的关系可以被如下给出:
Figure BDA0003596063070000181
结果,这种关系在低频(f<<fbreak)下可以是近似线性的,在高频(f>>fbreak)下可以是近似对数的,并且在这两种体制之间具有平滑过渡。因此,系统500可以能够显示出频率的乘法缩放可以不对应于mel域中的加法缩放。
给定输入轨道(例如,音频样本502),系统500可以最初计算CQT变换的绝对值,该绝对值可以被表示为大小T×Fmax的实数矩阵X,其中T取决于所选择的跳跃长度。从每个时间帧t=1,...,T(其中T等于训练期间的批量大小),系统500可以从均匀分布(即kt,i~U(kmin,kmax))对两个整数偏移(即kt,1和kt,2)进行采样,并进一步提取两个对应的切片
Figure BDA0003596063070000182
这两个对应的切片跨越CQT箱[kt,i,kt,i+F],i=1,2(其中F是切片中CQT箱的数量)的范围。然后,系统500可以使每个向量被馈送到同一编码器以产生单个标量
Figure BDA0003596063070000183
在一些示例中,系统500内的一个或两个编码器506A、506B可以是具有数量(L)的卷积层后跟一个或更多个全连接层(例如,两个全连接层)的神经网络。照此,编码器506A、506B可以被训练以检测音频样本502和其它音频数据内的音高。特别地,系统500所利用的主要损失可以以鼓励yt,i对音高进行编码的方式来设计。相对音高误差(et)510可以被如下设计:et=|(yt,1-yt,2)-σ(kt,1-kt,2)| (15)
然后,音高损失
Figure BDA0003596063070000184
512可以如所示出的被定义为音高误差(et)的休伯范数:
Figure BDA0003596063070000191
其中:
Figure BDA0003596063070000192
音高差异缩放因子(σ)可以以当音高在频率范围[fmin,fmax]内时yt∈[0,1]的方式被如下调整:
Figure BDA0003596063070000193
fmax和fmin的值可以基于训练集跨越的音高频率范围来确定。在一些情况下,系统500可以作为模型来操作(或生成模型),由于休伯范数,该模型对训练数据集中清音帧的存在不太敏感。结果,相对音高位移误差(et)510可能较大,因为在这种情况下音高可能未被良好地定义。除了音高损失
Figure BDA0003596063070000194
512之外,还可以使用以下重构损失
Figure BDA0003596063070000195
614:
Figure BDA0003596063070000196
其中
Figure BDA0003596063070000197
是通过将yi,t馈送到解码器
Figure BDA0003596063070000198
(例如,解码器508A、508B)中获得的输入帧的重构。重构损失
Figure BDA0003596063070000199
516可以使重构帧
Figure BDA00035960630700001910
尽可能接近原始帧(xt,i)。
一个或两个解码器508A、508B可以是具有L个卷积层的神经网络,其架构是编码器的镜像版本,其中卷积被转置卷积代替,该神经网络将标量值(yi,t)映射回具有与输入帧相同形状的向量。结果,总损失
Figure BDA00035960630700001911
可以被定义为:
Figure BDA00035960630700001912
其中ωpitch和ωrecon表示可用于确定分配给所述两个损失分量的相对重要性的标量权重。在一些配置中,系统500可以用于仅估计相对音高差异。特别地,输入帧的绝对音高
Figure BDA00035960630700001913
可以通过应用仿射映射来获得:
Figure BDA00035960630700001914
这取决于两个参数。等式21可以用于将编码器(yt)(例如,编码器506A、506B)的输出从[0,1]范围映射到绝对音高范围(以半音表示)。
在一些示例中,可以使用少量综合生成的数据(具有已知频率的局部周期性信号)来估计截距
Figure BDA00035960630700001915
和斜率
Figure BDA00035960630700001916
两者。更具体地,可以生成作为分段谐波并由M段构成的波形。每一段波形可以是纯谐波信号,其具有与在范围A2(110Hz)和A4(440Hz)内随机均匀采样的半音对应的基频(f0)。可以对a0~N(0,1)中一次谐波的幅度和ak~a0·U(0,1),k=1,...,K中高次谐波的幅度进行采样,并可以将随机相位应用于每个谐波。
在一些实施例中,波形的每一段可以被配置为N·H个样本长,其中H表示系统500所使用的CQT跳跃长度,N表示帧的数量。可以将波形馈送到系统500以针对每一段中的中心帧产生一个或更多个估计(从而减轻归因于边界效应的误差),这可以导致可由系统500使用的M个综合生成的样本。因此,音高可以用半音来表示,并且它可以被如下转换为频率(以Hz为单位):
Figure BDA0003596063070000201
除了估计的音高
Figure BDA0003596063070000202
之外,系统500还可以产生范围从0至1的置信水平(ct)(即,ct∈[0,1])。当音频样本502是浊音时,系统500可以能够产生高置信度估计。相反,当音频样本502是清音时,音高可能没有被良好地定义,这可能导致系统500产生低置信度。
一个或两个编码器506A、506B可以被设计为在卷积层的顶部具有两个头(例如,音高头518A和置信头520A),如图5所示。在示出的实施例中,第一头(例如,音高头518A、518B)由两个全连接层构成并产生音高估计(yt),第二头(例如,置信度头520A、520B)由单个全连接层构成并产生置信水平(ct)。为了训练第二头,可以使用以下置信度损失
Figure BDA0003596063070000203
514:
Figure BDA0003596063070000204
通过在训练期间包括置信度损失
Figure BDA0003596063070000205
514,系统500可以能够以高置信水平(ct~1)操作,并在一些情况下正确估计两个输入切片之间的音高差异。在一些实施例中,为了增加准确估计音高的能力,系统500可以被配置为在反向传播训练步骤期间停止梯度以使损失置信度
Figure BDA0003596063070000206
514仅影响置信度头(例如,置信度头520A、520B)的训练,而不影响编码器架构的其它层。
系统500还可以被配置为检测包括背景音乐或其它噪声的音频样本(例如,音频样本502)内的音高。在一些情况下,音高估计准确性可以受到有噪声的条件(诸如当音频样本包括叠加在背景音乐上的歌声时)影响。当音频样本502包括有噪声的条件(即和弦音频数据)时,系统500可以被配置为仅关注歌声源并与背景噪声区分开。
在一些示例中,系统500可以在训练期间合并数据增强。例如,干净的歌声信号可以在不同水平的信噪(SNR)比下与对应的乐器背景伴奏混合。在其它示例中,系统500可以利用一个或更多个修改的损失函数。例如,使用
Figure BDA0003596063070000211
来表示干净输入音频样本的CQT、使用
Figure BDA0003596063070000212
来表示有噪声的输入音频样本的CQT并且使用
Figure BDA0003596063070000213
Figure BDA0003596063070000214
来表示编码器的对应输出,音高误差损失
Figure BDA0003596063070000215
512可以通过对误差的四种不同变体进行平均被如下修改:
Figure BDA0003596063070000216
Figure BDA0003596063070000217
如等式26所示,重构损失
Figure BDA0003596063070000218
516也可以被修改以使解码器仅重构干净的样本。
Figure BDA0003596063070000219
通过修改损失函数,可以诱导编码器506A、506B表示包括与干净的输入音频样本相关的信息的输出,因此学习通过将歌声与噪声(例如,背景音乐)分离来对输入进行去噪。
图6示出了根据一个或更多个示例实施例的涉及计算设备向移动计算设备分发模型的系统。系统600包括计算设备602,该计算设备602被示出为分别向移动计算设备604A、604B和604C提供模型614A、614B、614C。在图6所示的实施例中,计算设备602包括神经网络606、音频样本608和通信接口610。在其它示例中,计算设备602可以包括其它元件或部件。
计算设备602可以表示被配置为执行这里描述的操作的一个或更多个的计算设备。例如,计算设备602可以被实现为图1所示的计算设备100。照此,计算设备602可以开发模型614A0-614C并将模型614A0-614C提供给移动计算设备604A-604C。
在图6所示的实施例中,计算设备602可以基于音频样本608生成模型614A-614C。模型614A-614C可以对应于系统500或由图5所示的系统500实现的模型。例如,计算设备602可以从另一设备或不同的来源获得音频样本608。计算设备602可以训练神经网络606以基于音频样本608来训练一个或更多个音高估计编码器。照此,计算设备602可以基于音频样本608来生成模型614A-614C并随后使用通信接口610向移动计算设备604A-604C提供(例如,无线地发送)模型614A-614C。例如,每个移动计算设备可以接收作为软件更新而被传输的模型。移动计算设备604A-604C可以使用模型614A-614C来基于用户的语音输入执行操作。
VI.示例方法
图7是根据一个或更多个示例实施例的方法700的流程图。方法700可以包括如块702、704、706、708和710中的一个或更多个所示的一个或更多个操作、功能或动作。尽管这些块按依次的顺序示出,但在一些情况下这些块可以并行执行和/或按与这里描述的顺序不同的顺序执行。此外,各种块可以组合成更少的块、划分成额外的块和/或基于期望的实施方式被移除。
此外,对于方法700以及这里公开的其它过程和方法,流程图示出了当前实施例的一种可能的实施方式的功能和操作。就此而言,每个块可以表示包括一个或更多个指令的模块、段或一部分程序代码,该一个或更多个指令可由处理器运行以用于实现过程中的特定逻辑功能或步骤。程序代码可以存储在任何类型的计算机可读介质或存储器(诸如包括磁盘或硬盘驱动器的存储设备)上。
计算机可读介质可以包括非暂时性计算机可读介质,例如诸如短时间内存储数据的计算机可读介质,像寄存器存储器、处理器高速缓存和随机存取存储器(RAM)。计算机可读介质还可以包括非暂时性介质或存储器,诸如二级或永久性长期存储,像例如只读存储器(ROM)、光盘或磁盘、紧凑盘只读存储器(CD-ROM).
计算机可读介质还可以是任何其它易失性或非易失性存储系统。例如,计算机可读介质可以被认为是计算机可读存储介质、有形存储设备或其它制品。此外,对于方法700以及这里公开的其它过程和方法,图7中的每个块可以表示被接线以在过程中执行特定逻辑功能的电路。
在块702处,方法700涉及基于输入音频样本来生成第一训练样本。生成第一训练样本涉及将第一频移量应用于输入音频样本。
在块704处,方法700涉及基于输入音频样本来生成第二训练样本。生成第二训练样本涉及将第二频移量应用于输入音频样本。
第一频移量和第二频移量中的每个是正量、负量或零量,使得第一训练样本或第二训练样本中的至少一个表示输入音频样本的频移版本。例如,第一频移可以是第一非零量,第二频移可以是第二非零量,其中第一非零量不同于第二非零量。
在一些示例中,生成每个训练样本可以涉及将频率变换应用于输入音频样本以生成输入音频样本的变换版本并且还涉及使输入音频样本的变换版本频移。将频率变换应用于输入音频样本可以涉及将常数Q变换应用于输入音频样本。
在块706处,方法700涉及将第一训练样本和第二训练样本应用于编码器以生成第一预测音高值和第二预测音高值。编码器可以包括具有至少一个卷积层的神经网络。
在一些示例中,将第一训练样本和第二训练样本应用于编码器以生成第一预测音高值和第二预测音高值还涉及生成第一音高置信度值和第二音高置信度值。
在一些示例中,编码器可以涉及至少一个卷积层、从所述至少一个卷积层接收输入并输出预测音高值的音高头。特别地,音高头可以包括两个全连接层。编码器还可以包括置信度头,该置信度头从所述至少一个卷积层接收输入并输出音高置信度值,其中音高头包括一个全连接层。
在块708处,方法700涉及基于音高误差项来确定编码器成本函数。音高误差项基于第一预测音高值和第二预测音高值之间的第一差异、以及第一频移量和第二频移量之间的第二差异。
在一些示例中,确定编码器成本函数涉及将非线性函数应用于音高误差项。对于音高误差项的在幅度上大于阈值的值,该非线性函数可以是线性的,对于音高误差项的在幅度上小于阈值的值,该非线性函数可以是非线性的。在一些示例中,非线性函数是休伯损失函数。
在块710处,方法700涉及基于编码器成本函数来修改编码器。修改编码器可以涉及调整编码器的一个或更多个参数。一些示例可以涉及获得另外的音频样本并将该另外的音频样本应用于更新的编码器以为该另外的音频样本生成预测的相对音高值。
方法700还可以涉及获得校准音频样本和获得校准音频样本的真值音高值。计算设备可以将校准音频样本应用于更新的编码器以生成校准音高值。基于真值音高值和校准音高值,方法700还可以涉及为更新的编码器确定偏差音高值。
此外,方法700还可以涉及获得另外的音频样本、将该另外的音频样本应用于更新的编码器以为该另外的音频样本生成预测的相对音高值、以及基于进一步的预测音高值和偏差音高值来为该另外的音频样本确定预测的绝对音高值。
在一些示例中,编码器可以包括至少一个卷积层、从所述至少一个卷积层接收输入并输出预测音高值的音高头、以及从所述至少一个卷积层接收输入并输出音高置信度值的置信度头。照此,基于编码器成本函数来修改编码器可以涉及基于编码器成本函数来更新所述至少一个卷积层的至少一个参数和音高头的至少一个参数。方法700还可以进一步涉及:基于(i)第一音高置信度值和第二音高置信度值、(ii)第一预测音高值和第二预测音高值之间的第一差异、以及(iii)第一频移和第二频移之间的第二差异来确定置信度成本函数;以及基于置信度成本函数来更新音高头的至少一个参数。
在一些示例中,方法700还可以涉及将第一预测音高值和第二预测音高值应用于解码器以生成第一重构音频样本和第二重构音频样本、以及基于第一重构音频样本和第二重构音频样本之间的第三差异来确定重构误差项。在一些情况下,解码器可以具有作为编码器结构的反转版本的结构。照此,确定编码器成本函数可以涉及基于重构误差项来确定编码器成本函数。然后方法700还可以涉及基于重构误差项来更新解码器的至少一个参数。
一些示例还可以涉及通过将背景噪声添加到第一训练样本来生成第三训练样本、以及将第三训练样本应用于编码器以生成第三预测音高值。计算设备可以基于第二预测音高值和第三预测音高值之间的差异以及第一频移和第二频移之间的第一差异来生成第二音高误差项。照此,确定编码器成本函数也可以基于第二音高误差项。
进一步的示例可以涉及通过将背景噪声添加到第二训练样本来生成第四训练样本、以及将第四训练样本应用于编码器以生成第四预测音高值。计算设备可以基于第一预测音高值和第四预测音高值之间的差异以及第一频移和第二频移之间的差异来生成第三音高误差项。计算设备还可以基于第二预测音高值和第四预测音高值之间的差异以及第一频移和第二频移之间的第二差异来生成第四音高误差项。照此,可以基于第三音高误差项和第四音高误差项来确定编码器成本函数。
图8是根据一个或更多个示例实施例的方法800的流程图。方法800可以包括如块802和804中的一个或更多个所示的一个或更多个操作、功能或动作。尽管这些块按依次的顺序示出,但在一些情况下这些块可以并行执行和/或按与这里描述的顺序不同的顺序执行。此外,各种块可以组合成更少的块、划分成额外的块和/或基于期望的实施方式被移除。
在块802处,方法800涉及获得音频样本。音频样本在示例中可以具有不同的特征。
在块804处,方法800涉及将音频样本应用于编码器以为该音频样本生成预测的相对音高值或预测的绝对音高值中的至少一个。编码器可以已经使用方法700或这里描述的任何其它技术进行了训练。
图9是示出根据这里呈现的至少一些实施例布置的用于在计算系统上运行计算机进程的计算机程序的概念性局部视图的示意图。在一些实施例中,所公开的方法可以被实现为计算机程序指令,该计算机程序指令以机器可读格式被编码在非暂时性计算机可读存储介质上,或被编码在其它非暂时性介质或制品上。
在一个实施例中,示例计算机程序产品900使用信号承载介质902来提供,该信号承载介质902可以包括一个或更多个编程指令904,该一个或更多个编程指令904当由一个或更多个处理器运行时可以提供以上关于图1-8描述的功能或部分功能。在一些示例中,信号承载介质902可以涵盖非暂时性计算机可读介质906,诸如但不限于硬盘驱动器、紧凑盘(CD)、数字视频盘(DVD)、数字磁带、存储器等。在一些实施方式中,信号承载介质902可以涵盖计算机可记录介质908,诸如但不限于存储器、读/写(R/W)CD、R/W DVD等。在一些实施方式中,信号承载介质902可以涵盖通信介质910,诸如但不限于数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路等)。因此,例如,信号承载介质902可以通过通信介质910的无线形式来传送。
一个或更多个编程指令904可以是例如计算机可运行的和/或逻辑实现的指令。在一些示例中,诸如图1的计算机系统100或图5的系统500的计算设备和/或这里描述的另一系统可以被配置为响应于由计算机可读介质906、计算机可记录介质908和/或通信介质810中的一个或更多个传送到计算机系统的编程指令904而提供各种操作、功能或动作。
非暂时性计算机可读介质还可以分布在多个数据存储元件之间,所述多个数据存储元件可以彼此远离地定位。替代地,运行一些或所有所存储的指令的计算设备可以是另一计算设备,诸如服务器。
上面的详细描述参照附图描述了所公开的系统、设备和方法的各种特征和功能。虽然这里已经公开了各种方面和实施例,但其它方面和实施例将是明显的。这里所公开的各种方面和实施例是出于说明的目的而不旨在进行限制,且真实范围由所附权利要求指示。
应理解,这里描述的布置仅出于示例的目的。照此,本领域的技术人员将理解,可以使用其它布置和其它元素(例如,机器、装置、接口、功能、命令和功能分组等)来代替,并且可以根据期望的结果完全省略一些元素。此外,所描述的许多元素是功能实体,其可以以任何合适的组合和位置作为离散的或分布式部件或联合其它部件被实现。

Claims (20)

1.一种用于训练音高预测编码器的方法,包括:
基于输入音频样本来生成第一训练样本,其中生成第一训练样本涉及将第一频移应用于输入音频样本;
基于输入音频样本来生成第二训练样本,其中生成第二训练样本涉及将第二频移应用于输入音频样本,以及其中第一频移和第二频移中的每个是正量、负量或零量,使得第一训练样本和第二训练样本中的至少一个表示输入音频样本的频移版本;
将第一训练样本和第二训练样本应用于编码器以生成第一预测音高值和第二预测音高值;
基于音高误差项来确定编码器成本函数,其中音高误差项取决于:(i)第一预测音高值和第二预测音高值之间的第一差异、以及(ii)第一频移和第二频移之间的第二差异;以及
基于编码器成本函数来修改编码器。
2.根据权利要求1所述的方法,其中第一频移是第一非零量并且第二频移是第二非零量,以及其中第一非零量不同于第二非零量。
3.根据前述权利要求中任一项所述的方法,其中编码器包括具有至少一个卷积层的神经网络。
4.根据前述权利要求中任一项所述的方法,其中生成第一训练样本还包括:
将频率变换应用于输入音频样本以生成输入音频样本的变换版本;以及
使输入音频样本的变换版本频移。
5.根据权利要求4所述的方法,其中将频率变换应用于输入音频样本包括:
将常数Q变换应用于输入音频样本。
6.根据任一前述权利要求所述的方法,其中将第一训练样本和第二训练样本应用于编码器以生成第一预测音高值和第二预测音高值还包括:
生成第一音高置信度值和第二音高置信度值。
7.根据权利要求6所述的方法,其中编码器包括:
至少一个卷积层;
音高头,从所述至少一个卷积层接收输入并输出预测音高值;以及
置信度头,从所述至少一个卷积层接收输入并输出音高置信度值;以及
其中基于编码器成本函数来修改编码器包括:
基于编码器成本函数来更新所述至少一个卷积层的至少一个参数和音高头的至少一个参数,其中该方法还包括:
基于(i)第一音高置信度值和第二音高置信度值、(ii)第一预测音高值和第二预测音高值之间的第一差异、以及(iii)第一频移和第二频移之间的第二差异来确定置信度成本函数;以及
基于置信度成本函数来更新音高头的至少一个参数。
8.根据权利要求6所述的方法,其中编码器包括:
至少一个卷积层;
音高头,从所述至少一个卷积层接收输入并输出预测音高值,其中音高头包括两个全连接层;以及
置信度头,从所述至少一个卷积层接收输入并输出音高置信度值,其中音高头包括一个全连接层。
9.根据任一前述权利要求所述的方法,还包括:
将第一预测音高值和第二预测音高值应用于解码器以生成第一重构音频样本和第二重构音频样本;
基于第一重构音频样本和第二重构音频样本之间的第三差异来确定重构误差项,其中确定编码器成本函数涉及基于重构误差项来确定编码器成本函数;以及
基于重构误差项来更新解码器的至少一个参数。
10.根据权利要求9所述的方法,其中解码器具有作为所述编码器的结构的反转版本的结构。
11.根据任一前述权利要求所述的方法,其中基于音高误差项来确定编码器成本函数包括将非线性函数应用于音高误差项,其中对于音高误差项的在幅度上大于阈值的值,所述非线性函数是线性的,对于音高误差项的在幅度上小于阈值的值,所述非线性函数是非线性的。
12.根据权利要求11所述的方法,其中所述非线性函数是休伯损失函数。
13.根据任一前述权利要求所述的方法,还包括:
通过将背景噪声添加到第一训练样本来生成第三训练样本;
将第三训练样本应用于编码器以生成第三预测音高值;以及
基于第二预测音高值和第三预测音高值之间的差异以及第一频移和第二频移之间的第一差异来生成第二音高误差项,
其中确定编码器成本函数包括基于第二音高误差项来确定编码器成本函数。
14.根据权利要求13所述的方法,还包括:
通过将背景噪声添加到第二训练样本来生成第四训练样本;
将第四训练样本应用于编码器以生成第四预测音高值;
基于第一预测音高值和第四预测音高值之间的差异以及第一频移和第二频移之间的差异来生成第三音高误差项;以及
基于第二预测音高值和第四预测音高值之间的差异以及第一频移和第二频移之间的第二差异来生成第四音高误差项,
其中确定编码器成本函数包括基于第三音高误差项和第四音高误差项来确定编码器成本函数。
15.根据任一前述权利要求所述的方法,还包括:
获得另外的音频样本;以及
将所述另外的音频样本应用于更新的编码器以为所述另外的音频样本生成预测的相对音高值。
16.根据权利要求1-14中任一项所述的方法,还包括:
获得校准音频样本;
获得校准音频样本的真值音高值;
将校准音频样本应用于更新的编码器以生成校准音高值;以及
基于真值音高值和校准音高值,为更新的编码器确定偏差音高值。
17.根据权利要求16所述的方法,还包括:
获得另外的音频样本;
将所述另外的音频样本应用于更新的编码器以为所述另外的音频样本生成预测的相对音高值;以及
基于进一步的预测音高值和偏差音高值来为所述另外的音频样本确定预测的绝对音高值。
18.一种针对音频样本预测音高的方法,该方法包括:
获取音频样本;以及
将音频样本应用于编码器以为音频样本生成预测的相对音高值或预测的绝对音高值中的至少一个,其中编码器已经根据如权利要求1-17中任一项所述的方法进行了训练。
19.一种制品,包括非暂时性计算机可读介质、其上存储有程序指令,所述程序指令在由计算设备运行时使所述计算设备执行根据权利要求1-18中任一项所述的方法。
20.一种系统,包括:
控制器;以及
其上存储有程序指令的非暂时性计算机可读介质,所述程序指令在由控制器运行时使控制器执行根据权利要求1-18中任一项所述的方法。
CN202080072283.4A 2019-10-19 2020-09-25 自监督音高估计 Pending CN114556473A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962923491P 2019-10-19 2019-10-19
US62/923,491 2019-10-19
PCT/US2020/052722 WO2021076297A1 (en) 2019-10-19 2020-09-25 Self-supervised pitch estimation

Publications (1)

Publication Number Publication Date
CN114556473A true CN114556473A (zh) 2022-05-27

Family

ID=72812016

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080072283.4A Pending CN114556473A (zh) 2019-10-19 2020-09-25 自监督音高估计

Country Status (4)

Country Link
US (1) US11756530B2 (zh)
EP (1) EP4026124A1 (zh)
CN (1) CN114556473A (zh)
WO (1) WO2021076297A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021076297A1 (en) * 2019-10-19 2021-04-22 Google Llc Self-supervised pitch estimation
KR20220137921A (ko) * 2020-02-03 2022-10-12 핀드롭 시큐리티 인코포레이티드 음성 생체 인식의 크로스-채널 등록 및 인증
US11727926B1 (en) * 2020-09-18 2023-08-15 Amazon Technologies, Inc. Systems and methods for noise reduction
CN114171053B (zh) * 2021-12-20 2024-04-05 Oppo广东移动通信有限公司 一种神经网络的训练方法、音频分离方法、装置及设备
CN114443891B (zh) * 2022-01-14 2022-12-06 北京有竹居网络技术有限公司 编码器的生成方法、指纹提取方法、介质及电子设备
US11886768B2 (en) * 2022-04-29 2024-01-30 Adobe Inc. Real time generative audio for brush and canvas interaction in digital drawing

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6456965B1 (en) * 1997-05-20 2002-09-24 Texas Instruments Incorporated Multi-stage pitch and mixed voicing estimation for harmonic speech coders
KR19990065424A (ko) * 1998-01-13 1999-08-05 윤종용 저지연 다중밴드 여기 보코더를 위한 피치 결정방식
US6564182B1 (en) * 2000-05-12 2003-05-13 Conexant Systems, Inc. Look-ahead pitch determination
US9082416B2 (en) * 2010-09-16 2015-07-14 Qualcomm Incorporated Estimating a pitch lag
EP3483886A1 (en) * 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Selecting pitch lag
WO2021076297A1 (en) * 2019-10-19 2021-04-22 Google Llc Self-supervised pitch estimation

Also Published As

Publication number Publication date
US20220343896A1 (en) 2022-10-27
WO2021076297A1 (en) 2021-04-22
US11756530B2 (en) 2023-09-12
EP4026124A1 (en) 2022-07-13

Similar Documents

Publication Publication Date Title
CN114556473A (zh) 自监督音高估计
Dieleman et al. The challenge of realistic music generation: modelling raw audio at scale
Sigtia et al. RNN-based music language models for improving automatic music transcription
Lu et al. Transferring the Style of Homophonic Music Using Recurrent Neural Networks and Autoregressive Model.
Hu et al. DMMAN: A two-stage audio–visual fusion framework for sound separation and event localization
Lostanlen et al. Time–frequency scattering accurately models auditory similarities between instrumental playing techniques
Shi et al. Music genre classification based on chroma features and deep learning
Mikami Long short-term memory recurrent neural network architectures for generating music and japanese lyrics
Li et al. A music cognition–guided framework for multi-pitch estimation
JP2009204808A (ja) 音響特徴抽出方法及び、その装置、そのプログラム、そのプログラムを記録した記録媒体
CN107239482A (zh) 一种将图像转换为音乐的处理方法及服务器
Guo et al. Optimized phase-space reconstruction for accurate musical-instrument signal classification
Gajjar et al. E-mixup and siamese networks for musical key estimation
Burlet et al. Isolated guitar transcription using a deep belief network
Xiao et al. Polyphonic piano transcription based on graph convolutional network
Gulhane et al. Indian classical musical instrument classification using Timbral features
Benetos et al. Multiple-F0 estimation and note tracking for Mirex 2015 using a sound state-based spectrogram factorization model
Taweewat et al. Musical pitch estimation using a supervised single hidden layer feed-forward neural network
Li et al. Piano multipitch estimation using sparse coding embedded deep learning
Paiement et al. Probabilistic models for melodic prediction
Paiement Probabilistic models for music
Marták et al. Balancing bias and performance in polyphonic piano transcription systems
Martak et al. Polyphonic note transcription of time-domain audio signal with deep wavenet architecture
Li et al. Knowledge based fundamental and harmonic frequency detection in polyphonic music analysis
US20240153474A1 (en) Melody extraction from polyphonic symbolic music

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination