用于动态音符匹配的电子装置及其操作方法与流程
技术区域
多个实施例涉及用于动态音符匹配(dynamicnotematching;dnm)的电子装置及其操作方法。
背景技术:
近年来在通信环境提供qbh(querybyhumming)服务。为了提供这样的服务,服务器存储大量的与音频文件相关的信息。客户端将具有需要搜索的旋律的音频信号传送给服务器,服务器将与音频信号最相似的音频文件关联的信息反馈给客户端。由此,服务器需要分别将音频信号与大量音频文件进行比较。因此,服务器需要很高的计算量。这可能会导致降低服务器的计算速度的问题。
技术实现要素:
多个实施例可以提供一种电子装置及其操作方法,其可以减少提供服务所需的计算量。
多个实施例可以提供一种电子装置及其操作方法,其可以减少将音频信号与大量音频文件进行比较所需的计算量。
根据多个实施例的电子装置的操作方法用于动态音符匹配(dnm),其包括:将从被输入的信号中提取的第一序列基于每个值连续排列的至少一个第一区间来缩减以获取第一区间序列的操作;从预存储的第二序列中获取基于每个值连续排列的至少一个第二区间来缩减的第二区间序列的操作;以及通过上述动态音符匹配(dnm)来计算上述第一区间序列和上述第二区间序列的相似度的操作。
根据多个实施例的电子装置用于动态音符匹配(dnm),其包括:处理器,构成为从被输入的信号提取第一序列,及存储器,其与上述处理器连接,并且存储至少一个第二序列。
根据多个实施例,上述处理器构成为:将上述第一序列基于每个值连续排列的第一区间来缩减以获取第一区间序列;从上述第二序列获取基于每个值连续排列的至少一个第二区间来缩减的第二区间序列;以及通过上述动态音符匹配(dnm)来计算上述第一区间序列和上述第二区间序列的相似度。
根据多个实施例的非暂时性(non-transitory)计算机可读(computer-readable)存储(storage)介质(medium)用于动态音符匹配(dnm),并且可以存储一个或多个程序来运行:将从被输入的信号中提取的第一序列基于每个值连续排列的至少一个第一区间来缩减以获取第一区间序列的操作;从预存储的第二序列中获取基于每个值连续排列的至少一个第二区间来缩减的第二区间序列的操作;以及通过上述动态音符匹配(dnm)来计算上述第一区间序列和上述第二区间序列的相似度的操作。
根据多个实施例,电子装置可以通过分别缩减和比较输入信号和预存储的数据,从而减少电子装置所需的计算量。此时,电子装置基于从被输入的信号缩减的第一区间序列和从预存储的数据中缩减的第二区间序列生成成本矩阵,并且可以通过动态音符匹配(dnm)在成本矩阵中检测翘曲路径。通过此,电子装置从输入的信号和预存储的数据中获取缩减的信息,从而可以使用动态编程。因此,即使电子装置减少了计算量,也可以获取期望的结果。这可以提高电子装置的操作效率并提高通过电子装置提供的服务质量。
附图说明
图1是示出根据多个实施例的系统及其信号流动的附图。
图2是示出根据多个实施例的电子装置的附图。
图3是示出根据多个实施例的电子装置的操作方法的附图。
图4是示出根据多个实施例的电子装置的操作方法的附图。
图5是示出图4的计算相似度的操作的附图。
图6、图7、图8、图9、图10、图11、图12及图13是用于说明图4的计算相似度的操作的附图。
图14是示出根据一些实施例的电子装置的操作方法的附图。
具体实施方式
以下,参考附图说明本文的多个实施例。
图1是示出根据多个实施例的系统100及其信号流动的附图。
参考图1,根据多个实施例的系统100可以包括多个电子装置110、130。电子装置110、130可以通过计算机网络(未图示)彼此通信。电子装置110、130可以包括至少一个客户端(client)110和至少一个服务器(server)130。例如,客户端110可以包括便携式通信设备、计算机设备、便携式多媒体设备、便携式医疗设备、照相机、可穿戴设备或家用设备中的至少一个,但是不限于此。服务器130可以向客户端110提供多个服务。由此,服务器130可以具备用于提供服务的数据库(database;db)。根据多个实施例,服务器130可以向客户端110提供qbh(querybyhumming)服务。由此,服务器130可以存储多个音频文件或关于音频文件的元信息中的至少一个。
根据多个实施例,在141操作中,客户端110可以检测到音频信号。客户端110可以基于用户的请求在特定时间间隔内收集音频信号。音频信号可以与用户想要搜索的旋律有关。例如,音频信号可以包括用户语音或在外部环境中播放的音乐中的至少一个。之后,在143操作中,客户端110将音频信号传送到服务器130。
在143操作中,当从客户端110接收到音频信号时,服务器130可以在145操作中从音频信号中提取第一序列q。第一序列q可以由数字矢量组成。由此,服务器130可以从音频信号中提取数字矢量,并且从数字矢量中获取第一序列q。此时,第一序列q具有特定长度a,并且每个值(value)即数字矢量可以具有连续排列的结构。
在147操作中,服务器130可以计算第一序列q和预存储的第二序列s中的每个的相似度。此时,服务器130可以存储音频文件或关于音频文件的元信息中的至少一个,以及音频文件的第二序列s。在此,每个第二序列s可以从一个音频文件的至少一部分区域中提取,并且可以由数字矢量组成。由此,服务器130从一个音频文件的至少一部分区域中提取数字矢量,并从数字矢量中获取第二序列s中的一个。此时,每个第二序列s具有特定长度b,每个值(value)即数字矢量可以具有连续排列的结构。并且,服务器130可以通过动态音符匹配(dynamicnotematching;dnm)计算第一序列q和第二序列s中的每个的相似度。服务器130可以缩减第一序列q和第二序列s,并且基于此来计算相似度。
在149操作中,服务器130可以生成包括第二序列s中的至少一个的反馈信息。服务器130可以基于相似度选择第二序列s中的至少一个。根据一个实施例,服务器130可以检测相似度中的最大值,并选择与其对应的第二序列s。根据其他实施例,服务器130可以检测超过预定阈值的相似度中的至少一个,并选择与其对应的第二序列s。并且,服务器130可以生成反馈信息以包括与第二序列中的至少一个关联的音频文件的元信息。之后,在151操作中,服务器130可以将反馈信息传送到客户端110。
在151操作中,当从服务器130接收到反馈信息时,客户端110可以在153操作中处理反馈信息。根据一个实施例,客户端110可以输出反馈信息。根据其他实施例,客户端110可以将反馈信息传送到其他电子装置(未图示)。
图2是示出根据多个实施例的电子装置110、130的附图。
参考图2,根据多个实施例的系统100包括多个电子装置110、130。电子装置110、130可以通过计算机网络200彼此通信。例如,计算机网络200可以包括远距离无线通信计算机网络或近距离无线通信计算机网络中的至少一个。电子装置110、130可以包括至少一个客户端110和至少一个服务器130。
根据多个实施例,客户端110可以包括输入模块211、输出模块213、接口215、通信模块217、存储器219或处理器221中的至少一个。在一些实施例中,可以省略客户端110的构成要素中的至少一个,或者可以将一个或多个其他构成要素添加到客户端110中。
输入模块211可以输入来自客户端110外部的信号或用于客户端110的至少一个构成要素的命令。此时,信号可以包括音频信号或视频信号中的至少一个。例如,输入模块211可以包括麦克风(microphone)、照相机模块、鼠标(mouse)、键盘(keyboard)或各种传感器(sensor)中的至少一个。
输出模块213向客户端110的外部提供信息。输出模块213可以包括提供视觉信息的显示模块或提供听觉信息的音频模块中的至少一个。例如,显示模块可以包括显示器、全息设备或投影仪中的至少一个。在一些实施例中,显示模块可以与用于感知触摸的至少一个传感器组合。
接口215可以将客户端110与其他电子装置(未图示)直接或无线连接。作为一例,接口215可以包括与其他电子装置进行物理连接的连接器。作为一例,接口215可以包括hdmi(highdefinitionmultimediainterface)、usb(universalserialbus)接口、sd(securedigital)卡接口或音频接口中的至少一个。
通信模块217可以执行与客户端110中的外部设备的通信。通信模块217可以在客户端110和外部设备之间建立通信信道,并且可以通过通信信道执行与外部设备的通信。通信模块217可以包括有线通信模块或无线通信模块中的至少一个。例如,无线通信模块可以通过计算机网络200执行与外部设备的通信。
存储器219可以存储由客户端110的至少一个构成要素使用的多个数据。例如,存储器219可以包括易失性存储器或非易失性存储器中的至少一个。数据可以包括程序或相关的输入数据或输出数据。
处理器221可以执行存储器219的程序以控制客户端110的至少一个构成要素,并且执行数据处理或计算。处理器221可以通过输入模块211或接口215检测音频信号。处理器221可以基于通过输入模块211输入的用户请求在特定时间间隔内收集音频信号。音频信号可以与用户想要搜索的旋律有关。例如,音频信号可以包括用户语音或在外部环境中播放的音乐中的至少一个。处理器221可以通过通信模块217将音频信号传送到服务器130。处理器221可以通过通信模块217从服务器130接收与音频信号对应的反馈信息,并处理反馈信息。根据一个实施例,处理器221可以通过输出模块213输出反馈信息。根据其他实施例,处理器213可以通过接口215将反馈信息传送到其他电子装置(未图示)。
根据多个实施例,服务器130可以包括通信模块237、存储器239或处理器241中的至少一个。在一些实施例中,可以省略服务器130的构成要素中的至少一个,或者可以将一个或多个其他构成要素添加到服务器130中。
通信模块237可以执行与服务器130中的外部设备的通信。通信模块237可以在服务器130和外部设备之间建立通信信道,并且可以通过通信信道执行与外部设备的通信。通信模块237可以包括有线通信模块或无线通信模块中的至少一个。例如,无线通信模块可以通过计算机网络200执行与外部设备的通信。
存储器239可以存储由服务器130的至少一个构成要素使用的多个数据。例如,存储器239可以包括易失性存储器或非易失性存储器中的至少一个。数据可以包括程序或相关的输入数据或输出数据。存储器239可以具备用于向客户端110提供服务的数据库。数据库可以存储多个音频文件或关于音频文件的元信息中的至少一个。
处理器241可以执行存储器239的程序以控制服务器130的至少一个构成要素,并且执行数据处理或计算。处理器241可以通过通信模块237从客户端110接收音频信号。处理器241可以计算音频信号和存储在存储器239中的音频文件中的每个的相似度。此时,处理器241可以通过动态音符匹配(dnm)计算音频信号和音频文件中的每个的相似度。处理器241可以通过通信模块237,并基于相似度,将音频文件中的至少一个元信息反馈到客户端110。此时,处理器241可以生成包括元信息的反馈信息,并将反馈信息传送到客户端110。
根据多个实施例,处理器241可以从音频信号中提取第一序列q,并缩减第一序列q以获取第一区间序列。第一序列q可以由数字矢量组成。由此,服务器241可以从音频信号中提取数字矢量,并且从数字矢量中获取第一序列q。此时,第一序列q具有特定长度a,并且每个值(value)即数字矢量可以由连续排列的至少一个第一区间组成。由此,处理器241基于第一区间将第一序列q缩减成第一区间序列。此时,第一区间序列可以指第一区间的值(a_value)即关于数字矢量和长度(a_duration)的序列。
根据多个实施例,处理器241可以从音频文件的第二序列s中获取缩减的第二区间序列。此时,第二序列s或第二区间序列中的至少一个存储在存储器239中。在此,每个第二序列s可以从一个音频文件的至少一部分区域中提取,并且可以由数字矢量组成。此时,每个第二序列s具有特定长度b,并且每个值(value)即数字矢量可以由连续排列的至少一个第二区间组成。每个第二区间序列可以基于来自第二序列s中的一个第二区间来缩减。此时,每个第二区间序列可以指第二区间的值(b_value)即关于数字矢量和长度(b_duration)的序列。
根据多个实施例,处理器241可以通过动态音符匹配(dnm)计算第一区间序列和每个第二区间序列的相似度。处理器241可以基于第一区间序列和每个第二区间序列生成成本矩阵(costmatrix)。此时,处理器241可以通过对应第一区间生成成本矩阵的至少一个列(row),并且可以通过对应第二区间生成成本矩阵的至少一个行(column)。处理器241在成本矩阵中检测翘曲路径(warpingpath),并且可以利用翘曲路径来计算第一区间序列和每个第二区间序列的相似度。
图3是示出根据多个实施例的电子装置110即客户端110的操作方法的附图。
参考图3,在311操作中,客户端110可以检测音频信号。处理器221基于通过输入模块211输入的用户的请求在特定时间间隔内收集音频信号。音频信号可以与用户想要搜索的旋律有关。例如,音频信号可以包括用户语音或在外部环境中播放的音乐中的至少一个。之后,在313操作中,客户端110将音频信号传送到服务器130。处理器221可以通过通信模块217将音频信号传送到服务器130。
在315操作中,客户端110可以从服务器130接收到反馈信息。处理器221可以通过通信模块217从服务器130接收与音频信号对应的反馈信息。反馈信息可以包括对应于音频信号而检测到的至少一个音频文件的元信息。对应于此,在317操作中,客户端110可以处理反馈信息。根据一个实施例,处理器221可以通过输出模块213输出反馈信息。根据其他实施例,处理器213可以通过接口215将反馈信息传送到其他电子装置(未图示)。
图4是示出根据多个实施例的电子装置130即服务器130的操作方法的附图。
参考图4,在411操作中,服务器130可以从外部设备即客户端110接收到音频信号。处理器241可以通过通信模块237从客户端110接收音频信号。音频信号可以与用户想要搜索的旋律有关。例如,音频信号可以包括用户语音或在外部环境中播放的音乐中的至少一个。
在143操作中,服务器130可以从音频信号中提取第一序列q。第一序列q可以由数字矢量组成。由此,服务器130可以从音频信号中提取数字矢量,并且从数字矢量中获取第一序列q。此时,第一序列q具有特定长度a,并且每个值(value)即数字矢量可以由连续排列的至少一个第一区间组成。例如,第一序列q可以具有如下[数学式1]所述的结构,并且在这种情况下,第一序列q的长度(q_length)(n)可以是8。
【数学式1】
q=[3,3,3,3,3,4,4,4]
在415操作中,服务器130可以计算第一序列q和预存储的第二序列s的相似度。此时,第二序列s或第二区间序列中的至少一个存储在存储器239中。在此,每个第二序列s可以从一个音频文件的至少一部分区域中提取,并且可以由数字矢量组成。此时,每个第二序列s具有特定长度b,并且每个值即数字矢量可以由连续排列的至少一个第二区间组成。例如,第二序列s中的一个可以具有如下[数学式2]所述的结构,并且在这种情况下,第二序列s中的一个的长度(s_length)(m)可以是10。处理器241可以通过动态音符匹配(dnm)计算第一序列q和第二序列s的相似度。
【数学式2】
s=[1,1,1,1,1,1,3,3,3,3]
图5是示出图4的计算相似度的操作的附图。图6、图7、图8、图9、图10、图11、图12及图13是用于说明图4的计算相似度的操作的附图。
参考图5,在511操作中,服务器130可以获取第一序列q的第一区间序列a。处理器241可以基于第一序列q的第一区间将第一序列q缩减成第一区间序列a。此时,第一区间序列a可以指第一区间的值(a_value)即数字矢量和长度(a_duration),例如关于(a_value,a_duration)的序列。例如,第一区间序列a从如上[数学式1]所述的结构的第一序列q进行缩减,具有如下[数学式3]所述的结构,并且在这种情况下,第一区间序列a的长度(a_length)可以是2。
【数学式3】
a=[(3,5),(4,3)]
在513操作中,服务器130可以获取第二序列s的第二区间序列b。第二区间序列b可以基于第二序列s中的一个第二区间进行缩减。此时,第二区间序列b可以指第二区间的值(b_value)即数字矢量和长度(b_duration),例如关于(b_value,b_duration)的序列。根据一个实施例,与第二序列s中的一个对应的第二区间序列b可以存储在存储器239中。根据其他实施例,处理器241可以缩减第二序列s中的一个以获取第二区间序列b。例如,第二区间序列b从如上[数学式2]所述的结构的第二序列s进行缩减,具有如下[数学式4]所述的结构,并且在这种情况下,第二区间序列b的长度(b_length)可以是2。
【数学式4】
b=[(1,6),(3,4)]
在515操作中,服务器130可以基于第一区间序列a和第二区间序列b来生成成本矩阵(costmatrix)。处理器241如图6所示可以生成用于动态音符匹配(dnm)的成本矩阵600。处理器241可以通过对应第一区间序列a的第一区间生成成本矩阵600的至少一个列(row),并且可以通过对应第二区间序列b的第二区间生成成本矩阵600的至少一个行(column)。此时,成本矩阵600可以包括至少一个矢量区域610。每个矢量区域610可以通过第一区间中的一个和第二区间中的一个生成。在此,每个矢量区域610作为二维矢量区域可以由第一区间中的一个的值(a_value)和长度(a_duration)及第二区间中的一个的值(b_value)和长度(b_duration)确定。根据多个实施例,对于用于动态音符匹配(dnm)的成本矩阵600可以存在预定义的翘曲规则(warpingrule)。
根据第一翘曲规则,在成本矩阵600中,翘曲路径可以沿着从下侧及左侧延伸到上侧或右侧中的至少一个的方向行进。例如,当成本矩阵600包括根据多个列和多个行的多个矢量区域610时,翘曲路径可以向从矢量区域610中的一个向上侧延伸的垂直方向、向右侧延伸的水平方向或向上侧和右侧之间延伸的对角线方向中的一个行进。
根据第二翘曲规则,在每个矢量区域610中,翘曲路径可以沿着向上侧和右侧之间延伸的对角线方向行进。实际上,如图7及图8所示,每个矢量区域610根据一个第一区间的值(a_value)和长度(a_duration)及一个第二区间的值(b_value)和长度(b_duration)表示元素的排列,并且可以对每个矢量区域610内每个元素赋予成本(cost)。在每个矢量区域610的元素中,可以确定翘曲路径710、810的出发位置711、811和到达位置713、813。此时,根据翘曲路径710、810的出发位置711、811,可以不同地确定翘曲路径710、810的到达位置713、813。翘曲路径710、810可以以接触矢量区域610的上侧边或右侧边中的至少一个的方式行进。作为一例,如图7所示,翘曲路径710的到达位置713可以接触到矢量区域610的上侧边。在这种情况下,如图9的a所示,对于矢量区域610中的到达位置713,从上侧边的有效距离(a_durmat[n,m])是0,并且存在从右侧边的有效距离(b_durmat[n,m])。作为其他例,如图8所示,翘曲路径810的到达位置813可以接触到矢量区域610的右侧边。在这种情况下,如图9的b所示,对于矢量区域610中的到达位置813,从右侧边的有效距离(b_durmat[n,m])是0,并且存在从上侧边的有效距离(a_durmat[n,m])。
在517操作中,服务器130可以计算关于成本矩阵600的每个矢量区域610的成本(cost)。处理器241可以利用如下[数学式5]所述的第一区间的值(a_value)和长度(a_duration)及第二区间的值(b_value)和长度(b_duration)来计算关于每个矢量区域610的成本。根据上述的第二翘曲规则,[数学式5]可以翘曲为下述的[数学式6]。
【数学式5】
cost[n,m]=|a_value[n]-b_value[m]|·min(a_duration[n],b_duration[m])
【数学式6】
cost[n,m]=|a_value[n]-b_value[m]|·min(有效距离),有效距离≠0
处理器241可以计算关于成本矩阵600的最下侧列和最左侧行的矢量区域61的成本。例如,对于如图10所示的成本矩阵600,处理器241可以计算关于成本矩阵600的最下侧列和最左侧行的矢量区域610、1011、1013、1015的成本。在此,处理器241可以基于上述的第二翘曲规则计算关于每个矢量区域610、1011、1013、1015的成本。具体而言,处理器241可以计算当翘曲路径到达矢量区域610、1011、1013、1015的上侧边时的成本和翘曲路径到达矢量区域610、1011、1013、1015的右侧边时的成本。
然后,成本矩阵600由多个列和多个行组成时,处理器241可以计算要从多个矢量区域610计算成本的目标(target)矢量区域610、1017的成本。此时,处理器241基于上述的第一翘曲规则,并且利用已经从矢量区域610计算出成本的基准矢量区域1011、1013、1015,可以计算目标矢量区域1017的成本。例如,处理器241如图11、图12及图13所示可以从基准矢量区域1011、1013、1015中的每个计算目标矢量区域1017的候选成本。处理器241可以选择候选成本中的最小值作为目标矢量区域1017的成本。
由此,处理器241可以选择目标矢量区域1017的下侧列和左侧行的基准矢量区域1011、1013、1015。在此,基准矢量区域1011、1013、1015可以包括第一基准矢量区域1011、第二基准矢量区域1013及第三基准矢量区域1015。第一基准矢量区域1011是设置在目标矢量区域1017的下侧及左侧即对角线方向的矢量区域610,第二基准矢量区域1013是设置在目标矢量区域1017的下侧的矢量区域610,第三基准矢量区域1015是设置在目标矢量区域1017的左侧的矢量区域610。
处理器241如图11所示可以从第一基准矢量区域1011计算目标矢量区域1017的候选成本。在此,处理器241如下[数学式7]所述可以计算当第一基准矢量区域1011中翘曲路径到达上侧边时的候选成本。并且,处理器241如下[数学式8]所述可以计算当第一基准矢量区域1011中翘曲路径到达右侧边时的候选成本。
【数学式7】
cost_candidate[0]=costarr[n-1,m-1]
+dist[n,m]·min(a_duration[n],b_duration[m])
+dist[n-1,m-1]·b_durmat[n-1,m-1],
dist[n,m]=|a_value[n]-b_value[m]|,
dist[n-1,m-1]=|a_value[n-1]-b_value[m-1]|
【数学式8】
cost_candidate[0]=costarr[n-1,m-1]
+dist[n,m]·min(a_duration[n],b_duration[m])
+dist[n-1,m-1]·a_durmat[n-1,m-1]
处理器241如图12所示可以从第二基准矢量区域1013中计算目标矢量区域1017的候选成本。在此,处理器241如下[数学式9]所述可以计算当第二基准矢量区域1013中翘曲路径到达上侧边时的候选成本。并且,处理器241如下[数学式10]所述可以计算当第二基准矢量区域1013中翘曲路径到达右侧边时的候选成本。
【数学式9】
cost_candidate[1]=costarr[n-1,m]
+dist[n,m]·min(a_duration[n],b_durmat[n-1,m]
【数学式10】
cost_candidate[1]=costarr[n-1,m]
+dist[n,m]·a_duration[n]
+dist[n-1,m]·a_durmat[n-1,m]
dist[n-1,m]=|a_value[n-1]-b_value[m]|
处理器241如图13所示可以从第三基准矢量区域1015计算目标矢量区域1017的候选成本。在此,处理器241如下[数学式11]所述可以计算当第三基准矢量区域1015中翘曲路径到达上侧边时的候选成本。并且,处理器241如下[数学式12]所述可以计算当第三基准矢量区域1017中翘曲路径到达右侧边时的候选成本。
【数学式11】
cost_candidate[2]=costarr[n,m-1]
+dist[n,m]·b_duration[,]
+dist[n,m-1]·b_durmat[n,m-1],
dist[n,m-1]=|a_value[n]-b_value[m-1]|
【数学式12】
cost_candidate[2]=costarr[n,m-1]
+dist[n,m]·min(a_durmat[n,m-1],b_duration[m])
在519操作中,服务器130可以在成本矩阵600中检测翘曲路径。处理器241考虑到成本矩阵600的所有矢量610的成本,可以在成本矩阵600中检测最优的翘曲路径。
在521操作中,服务器130可以基于翘曲路径来计算第一区间序列a和第二区间序列b的相似度。处理器241可以分析成本矩阵600的翘曲路径来计算第一区间序列a和第二区间序列b的相似度。之后,服务器130可以返回图4。
再次参考图4,在417操作中,服务器130可以生成包括第二序列s中的至少一个的反馈信息。处理器241可以基于第一序列q和第二序列s的相似度来选择第二序列s中的至少一个。根据一个实施例,处理器241可以检测相似度中的最大值,并选择与其对应的第二序列s。根据其他实施例,处理器241可以检测超过预定阈值的相似度中的至少一个,并选择与其对应的第二序列s。并且,处理器241可以生成反馈信息以包括与第二序列中的至少一个关联的音频文件的元信息。
在419操作中,服务器130可以将反馈信息传送到外部设备即客户端110。处理器241可以通过通信模块237将反馈信息传送到客户端110。
图14是示出根据一些实施例的电子装置110、130的操作方法的附图。
参考图14,根据一些实施例的电子装置110、130可以在1411操作中检测音频信号。处理器221、241可以基于用户的请求在特定时间间隔内收集音频信号。音频信号可以与用户想要搜索的旋律有关。例如,音频信号可以包括用户语音或在外部环境中播放的音乐中的至少一个。之后,在1413操作中,电子装置110、130可以从音频信号中提取第一序列q。处理器221、241可以从音频信号中提取第一序列q。通过此,在1415操作中,电子装置110、130可以计算第一序列q和预存储的第二序列s中的每个的相似度。处理器221、241可以通过动态音符匹配(dnm)来计算第一序列q和第二序列s的相似度。此时,电子装置110、130的存储器219、239可以存储音频文件或关于音频文件的元信息中的至少一个,以及音频文件的第二序列s。
在1417操作中,电子装置110、130可以生成包括第二序列s中的至少一个的反馈信息。处理器221、231可以生成反馈信息。之后,在1419操作中,电子装置110、130可以处理反馈信息。根据一个实施例,处理器221、231可以输出反馈信息。根据其他实施例,处理器221、231可以将反馈信息传送到其他电子装置(未图示)。
根据多个实施例,电子装置110、130可以通过分别缩减和比较输入信号和预存储的数据,从而减少电子装置110、130所需的计算量。此时,电子装置110、130基于从被输入的信号缩减的第一区间序列a和从预存储的数据中缩减的第二区间序列b生成成本矩阵610,并且可以通过动态音符匹配(dnm)在成本矩阵610中检测翘曲路径。通过此,电子装置110、130从输入的信号和预存储的数据中获取缩减的信息,从而可以使用动态编程。因此,即使电子装置110、130减少了计算量,也可以获取期望的结果。这可以提高电子装置110、130的操作效率并提高通过电子装置提供的服务质量。
根据多个实施例的电子装置110、130的操作方法用于动态音符匹配(dnm),其包括:基于每个值连续排列的至少一个第一区间来缩减从输入信号中提取的第一序列q以获取第一区间序列a的操作;从预存储的第二序列s中获取基于每个值连续排列的至少一个第二区间来缩减的第二区间序列b的操作;以及计算上述第一区间序列a和上述第二区间序列b的相似度的操作。
根据多个实施例,上述第一区间序列a可以表示对上述第一区间的值和长度的序列,上述第二区间序列b可以表示对上述第二区间的值和长度的序列。
根据多个实施例,计算上述相似度的操作可以包括:基于上述第一区间序列a和上述第二区间序列b生成包括至少一个矢量区域610的成本矩阵610的操作;计算关于上述矢量区域610成本的操作;基于上述成本来在上述成本矩阵610中检测翘曲路径的操作;以及利用上述翘曲路径来计算上述相似度的操作。
根据多个实施例,生成上述成本矩阵610的操作可以包括:与上述第一区间对应地生成上述成本矩阵610的至少一个列的操作;以及与上述第二区间对应地生成上述成本矩阵610的至少一个行的操作。
根据多个实施例,每个上述矢量区域610可以通过上述第一区间中的一个和上述第二区间中的一个来生成。
根据多个实施例,上述成本计算操作可以包括:利用上述第一区间的值和长度及上述第二区间的值和长度来计算关于上述成本矩阵610的最下侧列和最左侧行的矢量区域610的成本的操作;当上述成本矩阵610由多个列和多个行组成时,选择目标矢量区域1017的下侧列和左侧行的基准矢量区域1011、1013、1015的操作;以及基于上述基准矢量区域1011、1013、1015的成本来计算上述目标矢量区域1017的成本的操作。
根据多个实施例,计算上述目标矢量区域1017的成本的操作可以包括:从每个上述基准矢量区域1011、1013、1015中计算上述目标矢量区域1017的候选成本的操作;以及选择上述候选成本中的最小值来作为上述目标矢量区域1017的成本的操作。
根据多个实施例,上述候选成本计算操作可以包括:从上述基准矢量区域1011、1013、1015中的一个的上侧边的成本计算上述候选成本中的一个的操作;以及从上述基准矢量区域1011、1013、1015中的一个的右侧边的成本计算上述候选成本中的另一个的操作。
根据多个实施例,获取上述第一区间序列a的操作可以包括:从外部设备接收音频信号的操作;从上述音频信号提取上述第一序列q的操作;以及缩减上述第一序列q以获取上述第一区间序列a的操作。
根据多个实施例,获取上述第二区间序列b的操作及计算上述相似度的操作可以在预存储的多个第二序列s上逐个执行。
根据多个实施例,上述方法还包括:基于上述相似度来选择上述第二序列s中的至少一个的操作;以及将与上述选择的第二序列s关联的元信息反馈到上述外部设备的操作。
根据多个实施例的电子装置110、130用于动态音符匹配(dnm),其包括:处理器221、241,构成为从被输入的信号提取第一序列q,及存储器239,其与上述处理器221、241连接,并且存储至少一个第二序列。
根据多个实施例,上述处理器221、241构成为:将上述第一序列基于每个值连续排列的第一区间来缩减q以获取第一区间序列a;从上述第二序列s中获取基于每个值连续排列的至少一个第二区间来缩减的第二区间序列b;以及计算上述第一区间序列a和上述第二区间序列b的相似度。
根据多个实施例,上述第一区间序列a可以表示上述第一区间的值和长度的序列,上述第二区间序列b可以表示上述第二区间的值和长度的序列。
根据多个实施例,上述处理器221、241构成为:基于上述第一区间序列a和上述第二区间序列b生成包括至少一个矢量区域610的成本矩阵610;计算关于上述矢量区域610的成本;基于上述成本来在上述成本矩阵610中检测翘曲路径;以及利用上述翘曲路径计算上述相似度。
根据多个实施例,上述处理器221、241构成为:与上述第一区间对应地生成上述成本矩阵610的至少一个列;与上述第二区间对应地生成上述成本矩阵610的至少一个行;以及因此,上述矢量区域610分别由上述第一区间中的一个和上述第二区间中的一个来生成。
根据多个实施例,上述处理器221、241构成为:利用上述第一区间的值和长度及上述第二区间的值和长度来计算关于上述成本矩阵610的最下侧列和最左侧行的矢量区域610的成本;当上述成本矩阵610由多个列和多个行组成时,选择目标矢量区域1017的下侧列和左侧行的基准矢量区域1011、1013、1015;以及基于上述基准矢量区域1011、1013、1015的成本计算上述目标矢量区域1017的成本。
根据多个实施例,上述处理器221、241构成为:从每个上述基准矢量区域1011、1013、1015中计算上述目标矢量区域1017的候选成本;以及选择上述候选成本中的最小值来作为上述目标矢量区域1017的成本。
根据多个实施例,上述处理器221、241构成为:从上述基准矢量区域1011、1013、1015中的一个的上侧边的成本计算上述候选成本中的一个;以及从上述基准矢量区域1011、1013、1015中的一个的右侧边的成本计算上述候选成本中的另一个。
根据多个实施例,上述处理器221、241构成为:从外部设备,例如客户端110接收音频信号;从上述音频信号提取上述第一序列q;以及缩减上述第一序列q以获取上述第一区间序列a。
根据多个实施例,上述处理器221、241构成为:计算分别与预存储的多个第二序列s对应的多个相似度;基于上述相似度来选择上述第二序列s中的至少一个;以及将与上述选择的第二序列s关联的元信息反馈到上述外部设备。
本文的多个实施例可以体现为包括存储在通过机器(machine)(例如:电子装置110、130)可读的存储介质(storagemedium)(例如:存储器219、239)中的一个或多个命令语言的软件。例如,机器的处理器(例如:处理器221、241)可以调用并执行从存储介质存储的一个或多个命令语言中的至少一个命令。这使机器能够运行以根据至少一个被调用的命令语言来执行至少一个功能。一个或多个命令语言可以包括通过编译器生成的代码或通过解释器可以执行的代码。机器可读的存储介质可以以非暂时性(non-transitory)存储介质的形式提供。在此,“非暂时性”只是表示存储介质是有形(tangible)设备,不包括信号(signal)(例如:电磁波),并且该术语不区分将数据半永久地存储在存储介质中的情况和将其临时存储的情况。
根据多个实施例的非暂时性(non-transitory)计算机可读(computer-readable)存储(storage)介质(medium)可以存储一个或多个程序来运行:基于每个值连续排列的至少一个第一区间来缩减从输入信号中提取的第一序列q以获取第一区间序列a的操作;从预存储的第二序列s中获取基于每个值连续排列的至少一个第二区间来缩减的第二区间序列b的操作;以及计算上述第一区间序列a和上述第二区间序列b的相似度的操作。
应当理解,本文的多个实施例及其中使用的术语并不是将在本文中记载的技术限制为特定的实施形式,而是包括相应实施例的多个翘曲、等同物、及/或替代物。有关附图的说明,对于相似的构成要素可以使用相似的参考符号。除非上下文另外明确指出,否则单数表达可以包括复数表达。在本文中,“a或b”、“a及/或b中的至少一个”、“a、b或c”或“a、b及/或c中的至少一个”等表达可以包括一起列出的所有可能的组合。“第一”、“第二”、“第一个”或“第二个”等表达可以不考虑顺序或重要程度来修饰相应构成要素,,并且只是用于区分一个构成要素和其他构成要素,不是限定相应构成要素。当提到一些(例如:第一)构成要素与其他(例如:第二)构成要素“(功能上或通信上)连接”或“接通”时,上述一些构成要素与上述其他构成要素可以直接连接或通过其他构成要素(例如:第三构成要素)连接。
在本文中使用的术语“模块”包括由硬件、软件或固件组成的单元,并且可以与例如逻辑、逻辑块、组件或电路等术语互换使用。模块可以是整体构成的组件或执行一个或多个功能的最小单位或其一部分。例如,模块可以由asic(application-specificintegratedcircuit)构成。
根据多个实施例,记述的构成要素的每个构成要素(例如:模块或程序)可以包括单数或多数的个体。根据多个实施例,可以省略上述相应构成要素中的一个或多个构成要素或操作,或者可以添加一个或多个其他构成要素或操作。可以将替代或添加的多数构成要素(例如:模块或程序)合并成一个构成要素。这种情况下,合并的构成要素可以执行与合并之前多数构成要素中的相应构成要素所执行的相同或相似的多数构成要素中的每个构成要素的一个或多个功能。根据多个实施例,通过模块、程序或其他构成要素执行的操作可以顺序地、并行地、重复地或启发式地执行,或者一个或多个操作可以以其他顺序执行、省略或添加一个或多个其他操作。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除