WO2020101411A1 - 대상 화자 음성과 동일한 음성을 가진 컨텐츠를 검색하는 방법 및 이를 실행하기 위한 장치 - Google Patents
대상 화자 음성과 동일한 음성을 가진 컨텐츠를 검색하는 방법 및 이를 실행하기 위한 장치 Download PDFInfo
- Publication number
- WO2020101411A1 WO2020101411A1 PCT/KR2019/015589 KR2019015589W WO2020101411A1 WO 2020101411 A1 WO2020101411 A1 WO 2020101411A1 KR 2019015589 W KR2019015589 W KR 2019015589W WO 2020101411 A1 WO2020101411 A1 WO 2020101411A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- speaker
- voice
- hash value
- hash
- random
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 111
- 239000013598 vector Substances 0.000 claims abstract description 126
- 230000009466 transformation Effects 0.000 claims abstract description 19
- 238000004458 analytical method Methods 0.000 claims abstract description 6
- 230000006870 function Effects 0.000 claims description 75
- 239000011159 matrix material Substances 0.000 claims description 38
- 238000013528 artificial neural network Methods 0.000 claims description 19
- 238000003860 storage Methods 0.000 claims description 17
- 238000012549 training Methods 0.000 claims description 4
- 238000000605 extraction Methods 0.000 description 19
- 238000004891 communication Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 101150087667 spk1 gene Proteins 0.000 description 7
- 230000015572 biosynthetic process Effects 0.000 description 6
- 238000003786 synthesis reaction Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000005070 sampling Methods 0.000 description 5
- 239000000284 extract Substances 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 210000000056 organ Anatomy 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/43—Querying
- G06F16/432—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/68—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/683—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L17/00—Speaker identification or verification techniques
- G10L17/02—Preprocessing operations, e.g. segment selection; Pattern representation or modelling, e.g. based on linear discriminant analysis [LDA] or principal components; Feature selection or extraction
Definitions
- the present disclosure relates to a method and system for retrieving content including voices identical or similar to a target speaker voice. More specifically, a method of extracting a characteristic representing a voice of a target speaker, calculating a hash value corresponding to the extracted feature using a hash function, and searching for content related to a hash value similar to the extracted hash value And systems.
- the online video may include content including speech generated by a speaker's voice.
- voice synthesis technology which is a technology that reproduces the necessary voice without pre-recording the human voice, includes voice of a person, such as information broadcasting, navigation, artificial intelligence assistant, audiobook, video production, etc. Recently, it has been spotlighted in necessary services or applications.
- deep learning-based speech synthesis technology has been rapidly developed in recent years, so that a specific person (for example, a celebrity's) voice or voice can be generated as precisely a synthesized voice for a specific person can be generated. It may be difficult to tell whether it is actually recorded or synthesized.
- a platform that enables music search or video search is provided.
- specific music or video content may be searched under such a platform, but a user using the platform could not search for content including the voice based on the voice of a specific person, that is, the voice characteristics of the specific person.
- content with different content generated by the same speaker's voice based on the speaker's voice characteristics, not the content's content base could not be retrieved.
- searching for such a voice on a search space for example, a network
- a technique for quickly and accurately retrieving a specific person's voice over a wide range of online voice data is actually difficult.
- the method and system according to the present disclosure generate a hash value corresponding to a characteristic representing a speaker's voice, and among the plurality of contents searchable on the network, use the generated hash value to include content including the same voice as the speaker's voice. You can search.
- the method and system according to the present disclosure extracts a speaker feature vector representing characteristics of speech for a specific person, and calculates a hash value by projecting the extracted speaker feature vector into a random speaker variance subspace using a hash function Then, content related to a hash value similar to the calculated hash value may be searched.
- the method and system according to the present disclosure are configured to classify the voices of a plurality of specific speakers in extracting a random speaker subset used to generate a hash value corresponding to a speaker feature vector representing characteristics of a specific speaker.
- the learned voice data can be used.
- the present disclosure can be implemented in a variety of ways, including a computer-readable storage medium that stores a method, system, apparatus, computer program, or instructions.
- a method of retrieving content that includes the same voice as a target speaker's voice includes: receiving a sound generated by the target speaker's voice, and extracting features representing the target speaker's voice from the sound , Calculating a hash value corresponding to a characteristic representing a voice of a target speaker using a hash function, and searching for content related to a hash value similar to the calculated hash value among a plurality of contents searchable on the network. Can be.
- Extracting a feature representing the voice of the target speaker from the sound may include extracting a speaker feature vector corresponding to the voice of the target speaker from the sound.
- the step of calculating a hash value corresponding to a feature representing a voice of a target speaker using a hash function is to repeatedly select a predetermined number of random speaker subsets from learning voice data-
- the random speaker subset is associated with a plurality of speaker classes-generating a discriminative transform function based on the selected random speaker subset-a hash function is generated using the generated discriminant transform function
- the method may include calculating a hash value corresponding to a feature representing a voice of a target speaker by inputting the extracted speaker feature vector into the hash function.
- an area corresponding to a plurality of speaker classifications associated with the random speaker subset is determined using the selected random speaker subset. If possible, it may include the step of training the artificial neural network discrimination model.
- the step of learning the artificial neural network discrimination model may minimize distance between features in one speaker classification among a plurality of speaker classifications associated with the selected random speaker subset by using the selected random speaker subset
- the method may include training an artificial neural network discrimination model so as to maximize the distance between features in the speaker classification.
- the step of calculating a hash value corresponding to a feature representing a voice of a target speaker by inputting the extracted speaker feature vector according to an embodiment of the present disclosure into the hash function includes: extracting the extracted speaker feature vector into the trained artificial neural network discrimination model. By inputting, outputting information on a region for at least one speaker classification to which the extracted speaker feature vector corresponds, among a plurality of regions corresponding to a plurality of speaker classifications, and for each of the regions for at least one speaker classification And generating a hash value corresponding to the characteristic representing the voice of the target speaker using the corresponding value.
- the step of generating a discriminant transform function based on the selected random speaker subset may repeat a linear discriminant analysis (LDA) transformation matrix by a predetermined number using each of the selected random speaker subsets And generating.
- LDA linear discriminant analysis
- the step of calculating a hash value corresponding to a feature representing a voice of a target speaker by inputting an extracted speaker feature vector according to an embodiment of the present disclosure into a hash function includes speakers extracted using each of the generated LDA transformation matrices. Projecting a feature vector into a random speaker-variability subspace corresponding to each of the generated LDA transformation matrices, and each of the projection regions of the extracted speaker feature vector is a random speaker-variability sub If a speaker category belongs to one of a plurality of speaker categories associated with space, assigning a value corresponding to one speaker classification to each of the projection regions of the extracted speaker feature vector and speaker features extracted based on the assigned values And generating a hash value corresponding to the vector.
- the predetermined number may include the total number of predetermined hash tables.
- a method of retrieving content including the same voice as a target speaker's voice includes extracting a feature representing a voice of one or more speakers included in each of a plurality of searchable contents on a network and a hash function The method may further include calculating hash values corresponding to each of the features representing the voices of the extracted one or more speakers.
- Searching for content associated with a hash value similar to the calculated hash value includes a hash value associated with each of the plurality of hash values calculated for each of a plurality of searchable contents on a network and a hash associated with a target speaker Comparing values; And if there is one or more contents associated with a hash value similar to the hash value for the target speaker's voice, outputting one or more contents associated with the similar hash value.
- a program including instructions for performing each step according to a method of searching for content including the same voice as the target speaker's voice as described above may be recorded.
- devices, systems, and technical means associated with a method of retrieving content that includes the same voice as the target speaker voice as described above may also be disclosed.
- the characteristics of the voice are represented in a hash form, and by using the hash form, a search for the voice of the specific person is possible, so that the voice of the specific person is abused or reproduced It is possible to find content and prevent unauthorized use of such content.
- an LDA transform function in generating a hash value corresponding to a feature for speech, is generated using a teacher technique in an LSH technique that is a comparator technique, and the generated LDA transform function is used as a projection matrix.
- FIG. 1 is a diagram illustrating a system for retrieving a content including a voice identical to a voice included in a sound generated from a voice among a plurality of contents searchable on a network according to an embodiment.
- FIG. 2 is a block diagram of a content search system according to an embodiment of the present disclosure.
- FIG. 3 is a flowchart illustrating a method of searching for content including the same voice as the voice of a target speaker according to an embodiment of the present disclosure.
- LSH Locality Sensitive Hashing
- FIG. 5 is a flowchart illustrating a method of calculating a hash value for a speaker feature vector representing a speaker's speech using a discriminative transform function for LSH according to an embodiment of the present disclosure.
- FIG. 6 is a flowchart illustrating a method of calculating a hash value for a feature vector by projecting a speaker feature vector representing a speaker's speech into a random speaker-variance subspace using a linear discriminant analysis (LDA) function.
- LDA linear discriminant analysis
- FIG. 7 is an exemplary view illustrating a method of projecting a random speaker subset selected from learning speech data into a random speaker-variance subspace using an LDA function for LSH according to an embodiment of the present disclosure.
- FIG. 8 is a graph showing results of average hamming distance of the same speaker and average hamming distance between different speakers according to LSH, random sampling LDA technique, and proposed LDA technique (LDA technique using RSS). It is a drawing.
- 9 and 10 are graphs showing the result values according to the number of hyperplanes and hash tables for various hashing techniques.
- 10 and 11 are graphs showing a trade-off between search speed and performance according to various hashing techniques.
- the term 'unit' or 'module' used in the specification means a software or hardware component, and the 'unit' or 'module' performs certain roles.
- 'part' or 'module' is not limited to software or hardware.
- the 'unit' or 'module' may be configured to be in an addressable storage medium or may be configured to reproduce one or more processors.
- 'part' or 'module' is a component such as software components, object-oriented software components, class components and task components, processes, functions, attributes, Includes procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, database, data structures, tables, arrays and variables.
- components and 'units' or 'modules' can be combined into a smaller number of components and 'units' or 'modules', or into additional components and 'units' or 'modules' Can be further separated.
- the 'unit' or 'module' may be implemented as a processor and a memory.
- the term 'processor' should be broadly interpreted to include general purpose processors, central processing units (CPUs), microprocessors, digital signal processors (DSPs), controllers, microcontrollers, state machines, and the like.
- 'processor' may refer to an on-demand semiconductor (ASIC), a programmable logic device (PLD), a field programmable gate array (FPGA), and the like.
- ASIC on-demand semiconductor
- PLD programmable logic device
- FPGA field programmable gate array
- 'processor' refers to a combination of processing devices such as, for example, a combination of a DSP and a microprocessor, a combination of a plurality of microprocessors, a combination of one or more microprocessors in combination with a DSP core, or any other combination of such configurations. It can also be referred to.
- RAM random access memory
- ROM read-only memory
- NVRAM non-volatile random access memory
- PROM programmable read-only memory
- EPROM erase-programmable read-only memory
- a memory is said to be in electronic communication with the processor if the processor is capable of reading information from and / or writing information to the memory.
- the memory integrated in the processor is in electronic communication with the processor.
- 'speech' may refer to a specific physical sound coming out of a person's pronunciation organ, and the characteristics of each person who speaks, i.e., each speaker, may have different voices. Also, 'speech' may refer to a voice included in content generated through any voice synthesis technology.
- 'content' may include any information or contents thereof, including a voice of a speaker, which is digitally produced and can be searched by a content search system.
- 'content' may include audio content generated by a speaker's voice, and video content including such audio content.
- the 'speaker's voice' may represent a specific physical sound made through the speaker's pronunciation organ, or may include a synthesized voice reflecting the speaker's voice characteristics included in the synthesized sound through speech synthesis technology. .
- the 'hash function' may refer to a function or network (eg, neural network, deep neural network) configured to output a hash value of a fixed length by inputting data or information having an arbitrary length.
- the 'hash function' may include a hash function that connects a plurality of hash functions, or may include a plurality of hash functions or networks that are used independently.
- the term 'on the network' or 'on the network' may refer to a state that can be searched or accessed through any electronic device capable of wired or wireless communication.
- the term “on the network” may indicate a state in which any content stored in an arbitrary device connected to any electronic device by wire or wireless is searchable or accessible.
- 'similar' or 'similar' may include 'same' or 'similar'.
- FIG. 1 shows a content including a voice identical to a voice included in a voice generated from a speaker's voice among a plurality of contents 150_1, 150_2, 150_3, ..., 150_N searchable on the network 140 according to an embodiment
- the user terminal 110 may receive the speaker's voice through an input means (for example, a microphone, etc.), and any device and / or system connected to the network 140 by wired or wireless communication with a communication module It may include any electronic device (for example, a smartphone, a PC, a tablet PC, etc.) that can be connected to and output content.
- the user terminal 110 may receive a sound generated by the speaker's voice.
- the user terminal 110 may receive a sound generated by a speaker's voice through a microphone.
- the sound generated by the speaker's voice may include sound stored in the user terminal 110 or retrieved by the user terminal 110 or received from any accessible device.
- the sound generated by the speaker's voice may be a sound including the synthesized voice generated using speech synthesis technology.
- the user terminal 110 may receive audio content including at least a part of the sound generated as voice or video content including such sound.
- the sound, audio content, and / or video content may be provided as a query to the content search system 130.
- the content search system 130 may be configured to extract features representing voices included in the received sound, audio content, and / or video content.
- the content search system 130 may be configured to calculate a hash value corresponding to a characteristic representing the voice of the extracted speaker.
- these hash values can be calculated using the extracted features and hash functions.
- the hash value may be stored by distinguishing the voices of a plurality of speakers, and the voices of the speakers are indexed.
- a plurality of voices associated with a hash value similar to the hash value corresponding to the characteristic representing the voice of the extracted speaker may refer to the same voice as the voice of the extracted speaker.
- the similar hash value may refer to a hash value corresponding to a characteristic representing the voice of the extracted speaker and a hash value having a similarity of a predetermined level or the nearest hash value.
- the content search system 130 may search for or access a plurality of contents 150_1 to 150_N through the network 140, and display characteristics of one or more speakers included in each of the plurality of contents 150_1 to 150_N. It can be configured to extract. Then, the content search system 130 may be configured to calculate a hash value corresponding to each of the features representing the extracted one or more speaker voices.
- the content retrieval system 130 uses the same hash function as the hash function used when calculating the hash value for the speaker's voice included in the sound, and includes one or more contents included in each of the plurality of contents 150_1 to 150_N. A hash value corresponding to a characteristic representing the speaker's voice can be calculated.
- hash values for the voices of one or more speakers included in each of the plurality of extracted contents 150_1 to 150_N may be searched by the content search system 130 or stored in any accessible device.
- the hash value may be stored in the content retrieval system 130 or may be stored in a server or a cloud system accessible by the content retrieval system 130.
- such a hash value may be provided to any device in which a plurality of contents 150_1 to 150_N are stored and stored in association with a plurality of contents 150_1 to 150_N.
- the content retrieval system 130 may be configured to compare hash values associated with sounds generated by the received speaker's voice with each of a plurality of hash values associated with each of the plurality of contents 150_1 to 150_N. Then, if one or more contents associated with a hash value similar to the hash value for the received speaker's voice are searched, the searched one or more contents may be configured to be output. According to an embodiment, one or more contents associated with the same hash value may be output or provided to the user terminal 110 that provides sound generated by the speaker's voice. For example, a list of one or more contents associated with similar hash values may be provided to the user terminal 110. The user of the user terminal 110 can check the one or more contents provided as above, find the contents in which the voice of a specific speaker is abused or reproduced, and further take measures to prevent unauthorized use of such contents.
- the content search system 130 may be configured to include a communication module 210, a database 220, and a processor 230.
- the processor 230 may be configured to include a speaker voice feature extraction module 240, a voice hash value generation module 250, and a content extraction module 260.
- the communication module 210 may be configured such that the content search system 130 transmits and receives signals or data to and from external devices through the network 140.
- the external device provides the content search system 130 with the sound generated by the voice of a specific speaker as a query, and stores the user terminal 110, one or more contents capable of receiving the same voice content as the voice of the specific speaker It may include any electronic device, learning server data, and / or any server device that stores hash value information, a clouding system, or the like.
- the communication module 210 may be configured to receive the sound generated by the voice of the target speaker from the user terminal 110. Further, the communication module 210 may be configured to receive a plurality of contents from a plurality of external devices. The sound generated by the voice of the target speaker received from the user terminal 110 and the content received from a plurality of external devices may be provided to the speaker voice feature extraction module 240 of the processor 230. In response to receiving the sound generated by the voice of the target speaker, content including the same or similar voice to the target speaker's voice among the plurality of contents received from the plurality of external devices is transmitted through the communication module 210 to the user terminal 110 ).
- the speaker voice feature extraction module 240 of the processor 230 may be configured to extract features representing the voice of the target speaker from the received sound. According to an embodiment, the speaker voice feature extraction module 240 may be configured to extract a speaker feature vector corresponding to the voice of the target speaker from the received sound.
- the speaker feature vector may refer to an arbitrary feature vector representing characteristics of the target speaker so that the target speaker is distinguished from a plurality of other speakers.
- the speaker feature vector may be represented by a single low-dimensional latent vector so as to distinguish a speaker's voice included in the received sound.
- Such single low-dimensional latent vectors may include i-vectors.
- This i-vector technique may be considered under GMM (Gaussian Mixture Model) -UBM (Universal Background Mode).
- GMM Global Mixture Model
- UBM Universal Background Mode
- each individual average vector may represent a shift of the average vector of UBM, and all The change in the mean can be based on the assumption that it can be controlled by a single vector (ie i-vector).
- i-vector ⁇ peaker feature vector
- M denotes a speaker
- m denotes a speaker dependent and independent GMM super-vector
- T denotes a total variability matrix.
- the speaker feature vector may include a speaker embedding vector using DNN.
- the speaker embedding vector can use a large data set including augmented data such as background noise.
- the speaker embedding vector may be extracted from one of the hidden layers from the network trained to classify the N speakers in the learning speech data set.
- the speaker embedding vector may include an x-vector extracted from a neural network structure based on Time Delayed Neural Network (TDNN). This x-vector can also have advantages from augmented data with background noise. These x-vectors can be trained using any set of learning speech data to effectively distinguish the speaker's speech.
- the speaker voice feature extraction module 240 may provide a feature or speaker feature vector representing the voice of the target speaker extracted from the received sound to the voice hash value generation module 250 of the processor 230.
- the speaker voice feature extraction module 240 may receive a plurality of contents searchable on the network through the communication module 210.
- the speaker voice feature extraction module 240 may extract features representing voices of one or more speakers included in each of a plurality of contents.
- the speaker voice feature extraction module 240 may extract features representing voices included in an audio segment that is part of the received content.
- the speaker speech feature extraction module 240 is a feature or speaker feature vector (for example, one or more speeches included in each of a plurality of contents received in the same manner as a method of extracting a feature or a speaker feature vector of a target speaker (for example, i-vector, x-vector, etc.).
- a feature or speaker feature vector extracted in association with a plurality of contents may be provided to the voice hash value generation module 250.
- the voice hash value generation module 250 may use a hash function to generate a hash value corresponding to a feature representing the speaker's voice received from the speaker voice feature extraction module.
- the hash function may be generated using at least one of Locality Sensitive Hashing (LSH), Random Speaker-variability Subspace (RSS) projection, and Discriminative Transform Function or Network. This hash function is described in detail with reference to FIGS. 4 to 6 below.
- the voice hash value generation module 250 may be configured to calculate a hash value corresponding to a characteristic representing a voice of a target speaker using a hash function.
- the voice hash value generation module 250 uses the hash function used to calculate the hash value for the target makeup, and hash values corresponding to each of the features representing one or more speaker voices included in the received plurality of contents. It can be configured to calculate.
- the calculated hash value may be provided to the content extraction module 260 of the processor 230.
- the content extraction module 260 may be configured to search for content related to a hash value similar to the hash value for the received target speaker's voice among a plurality of content searchable on the network. According to an embodiment, the content extraction module 260 compares a hash value for the received target speaker's voice with each of a plurality of hash values calculated for the retrieved plurality of contents, and hash values for the target speaker's voice It may be configured to extract one or more contents associated with a hash value similar to.
- a plurality of contents may be classified according to voice characteristics and / or corresponding hash values included in the content, and the content extraction module 260 selects a classification corresponding to the voice of the target speaker And, it can be configured to extract one or more contents associated with a similar hash value by comparing the hash value corresponding to the voice of the target speaker with the hash values included in the selected classification.
- a hash value (second hash value) similar to a hash value (first hash value) corresponding to a voice characteristic of a target speaker may refer to a hash value having a predetermined similarity or higher among a plurality of hash values.
- the predetermined similarity may refer to the similarity required for two hash values to indicate the same voice, and may be determined or learned using learning voice data. For example, when the first hash value is compared with each of the plurality of hash values, a hash value having a number of bits different from a hash bit of the first hash value may be selected as a second hash value.
- a second hash value similar to the first hash value may be selected by considering the weight of hash bits included in the hash value.
- weights can be assigned to hash bits included in the hash value, and the content extraction module 260 compares the hash bits included in the first hash value and the hash bits included in each of the plurality of hash values.
- the similarity for each of the first hash value and the plurality of hash values may be calculated by considering different hash bits and weights assigned thereto, and one or more hash values having a similarity or higher may be determined as the second hash value. 2
- One or more contents associated with a hash value may be extracted.
- the extracted content may be provided to a user terminal that provides a voice of a target speaker through the communication module 210.
- contents include a plurality of contents
- information eg, link information, thumbnails, etc.
- information for the plurality of contents may be generated in the form of a list and provided to the user terminal.
- the database 220 may include any data or information used or output by the processor 230. According to an embodiment, the database 220 may be configured to store a hash value corresponding to a feature representing a plurality of voices.
- the database 220 may include a hash table used to calculate a hash value, and each hash table may include a hash bit as well as a weight for each hash bit.
- the database 220 may store a hash function, and may be configured to store learning speech data used to calculate the hash function.
- the learning voice data may include an arbitrary set of learned voice data in order to more effectively distinguish the voice of each speaker from the voices of a plurality of speakers.
- the learning speech data may include a one-hot speaker ID-vector and / or an embedding vector representing a speaker generated based on the speaker's speech characteristics.
- the learning speech data may include any learning data used to train any neural network used to distinguish speakers.
- the content search system 130 is configured to include the database 220, but is not limited thereto, and the database may be stored in any device accessible by the content search system 130.
- the content search system 130 may receive a sound generated by the voice of the target speaker.
- the content search system 130 may receive audio content or video content including at least a part of a sound generated by the target speaker's voice.
- the sound generated by the voice of the target speaker may be received from any electronic device that is to search for content having the same voice as the target speaker.
- the content search system 130 may be configured to extract a characteristic representing the voice of the target speaker from the received sound.
- a feature representing a voice of a target speaker may be represented by a speaker feature vector such as i-vector, x-vector, and the like.
- the content search system 130 may use a hash function to calculate a hash value corresponding to a characteristic representing the voice of the target speaker. Then, the content search system 130 may search for one or more content associated with a hash value similar to the hash value for the voice of the target speaker, among a plurality of content searchable on the network.
- the content search system 130 may calculate a hash value for each of a plurality of contents searchable on the network, and compares the hash values for each of the calculated hash values and voices of a target speaker, and similar hashes.
- One or more contents associated with a value eg, a hash value over a certain degree of similarity may be searched.
- LSH Locality Sensitive Hashing
- the LSH technique is one of the nearest neighbor search algorithms, and it is possible to quickly search related voices in a large amount of data while maintaining the accuracy of searching for audio segments having the same voice using i-vector. Can represent an algorithm.
- the LSH technique is an unsupervised hash technique that is independent of data, and can randomly project a speaker feature vector (here, i-vector) representing a speaker's voice on a hyperplane.
- This hashing technique can map the same or similar vectors with the same or similar characteristics to the same region (eg, bin, bucket) with high probability.
- a hash value may be calculated using the following formula, that is, a hash function.
- r denotes a d-order arbitrary projection vector calculated from a standard normal distribution
- d denotes an order of i-vector ⁇ (speaker feature vector), which is an initial speech feature vector.
- the i-vector ⁇ can be mapped using the hash function above and expressed as a hash value.
- various hash functions may be continued, and performance may be improved by using multiple and independent hash functions.
- the dxk order random projection matrix R l can be used, where k represents the number of hyperplanes per hash table, l represents the index of the hash table (1 ⁇ l ⁇ L), and L represents the index of the hash table. Indicates.
- k and L may be appropriately selected in consideration of performance and complexity.
- Equation 4 shows a graph for projecting a randomly extracted two-dimensional vector into a one-dimensional vector using a projection vector called r as a feature vector ⁇ representing speech using Equation 2 above.
- a process of randomly projecting two-dimensional speaker feature vectors (spk1, spk2, spk3) onto each of the four hyperplanes 410, 420, 430, and 440 randomly extracted is illustrated.
- Equation 2 above may be used so that each of the feature vectors (spk1, spk2, spk3) is projected onto each hyperplane (410, 420, 430, 440).
- a region capable of distinguishing each feature vector (spk1, spk2, spk3) may be determined.
- a feature representing the speaker voice received from the speaker voice feature extraction module 240 that is, a speaker feature vector may be projected onto each hyperplane 410, 420, 430, 440 using a projection vector called r , each A hash value corresponding to the speaker feature vector may be calculated based on the value assigned to the projection area.
- a hash bit of 0 may be assigned, and if 1, a hash bit of 1 may be assigned. That is, this method is a method using an LSH technique based on a random projection in which a hash value is generated when r is randomly extracted and projected a lot.
- the speaker feature vector can be projected onto four hyperplanes, it can be expressed as a 4-bit hash value.
- three hyperplanes among four hyperplanes are selected, and thus can be expressed as a 3-bit hash value. This hash value can be used to index the speaker feature vector.
- a discriminant transformation function may be generated using a speaker label in the LSH, a comparison hash technique described above, that is, using a teacher technique, , The generated discriminant transform function can be used in place of the projection matrix R 1 described in FIG. 4.
- the discriminant transform function may refer to any discriminant transform method capable of minimizing the distance between features in the same speaker class and maximizing the distance between features in different classes.
- the discrimination transform function trains an artificial neural network discrimination model (for example, a deep neural network) so that a region corresponding to a plurality of speaker classifications associated with a random speaker subset is determined using a random speaker subset.
- an artificial neural network discrimination model for example, a deep neural network
- a Linear Discriminant Analysis (LDA) transformation matrix can be generated as this discriminant transform function using speech or utterances from a random speaker subset, and the generated matrix is the projection described in FIG. 4. It can be used in place of the matrix R 1 .
- LDA Linear Discriminant Analysis
- the voice hash value generation module S250 may repeatedly select a random speaker subset from the learned voice data by a predetermined number.
- the learning speech data may include a random speaker subset, and may include information on a speaker label capable of distinguishing each speaker subset.
- the predetermined number may indicate the total number of predetermined hash tables. Accordingly, a random speaker subset can be associated with a plurality of speaker classifications.
- S l may be a subset of speakers (S is a speaker) randomly selected from learning voice data, where the number of speakers may be N s .
- a discriminant transform function may be generated based on each of the selected random speaker subsets (step S520).
- This discriminant transform function can be used to generate a hash function.
- an artificial neural network discrimination model may be trained such that a region corresponding to a plurality of speaker classifications associated with a random speaker subset is determined using a random speaker subset selected from learning speech data.
- the discriminant model can be used to generate a hash function as a nonlinear function or network. For example, among speaker classifications associated with a random speaker subset selected from training speech data using a selected random speaker subset, artificiality is minimized to minimize distance within the same speaker classification and maximize distance within a different speaker classification.
- the neural network discrimination model can be trained, and such an artificial neural network discrimination model is used to determine which part of each random sub-speaker set belongs to a feature vector representing the voice of the target speaker in place of the projection matrix R l illustrated in FIG. 4. Can be used for
- the LDA transform matrix may be repeatedly generated by a predetermined number using each of the selected random speaker subsets. For example, a scatter matrix between speaker classes associated with a random speaker subset may be generated using learning speech data for each of the selected random speaker subsets. Also, a scatter matrix within one speaker classification associated with the random speaker subset may be generated using learning speech data for each of the selected random speaker subsets. Then, an LDA transformation matrix may be generated such that the ratio of the scatter matrix between a plurality of speakers and the scatter matrix within one speaker classification is maximized.
- the voice hash value generation module 250 may be configured to input the extracted speaker feature vector into the hash function to calculate a hash value corresponding to the feature representing the voice of the target speaker.
- the generated hash value may be transmitted to the content extraction module 260 and used to search for one or more contents associated with a similar hash value.
- the voice hash value generation module 250 inputs the extracted speaker feature vector into the trained artificial neural network discrimination model, and extracts among a plurality of regions corresponding to a plurality of speaker classifications associated with the random speaker subset.
- the speaker feature vector may be configured to output information about a region for at least one speaker classification.
- a hash value corresponding to a characteristic representing the voice of the target speaker may be calculated using a value corresponding to each of the regions for at least one classification.
- a method of calculating a hash value using an LDA transform function that is one of the linear discriminant transform functions will be described in detail with reference to FIGS. 6 and 7 below.
- step S610 the voice hash value generation module 250 uses a speaker number vector repeatedly generated by a predetermined number of times, and a speaker feature vector corresponding to the LDA transformation matrix is random speaker-variance subspace (RSS, Random) Speaker-variability Subspace).
- RSS random speaker-variance subspace
- the random speaker-variance degree subspace may represent a variation degree subspace associated with a random speaker subset.
- This projection scheme can replace the arbitrary projection matrix R l of the LSH technique.
- N s For the hyperparameter N s , if too many speakers are selected, many overlapping checks may occur between projection matrices. In view of this, N s is selected to be more than the length k of the hash bit and can be projected in order k. In this embodiment, Equation 3 below may be used as a hash function to keep the size of each hash area balanced.
- a value corresponding to the speaker classification corresponding to each of the projection regions of the speaker feature vector may be assigned.
- each of the random speaker subset and the random speaker-variance subspace may be associated with a plurality of speaker classes.
- a value corresponding to one speaker classification is assigned to each of the projection regions of the speaker feature vector. Can be assigned.
- a hash value corresponding to the speaker feature vector may be generated based on the pre-allocated value.
- FIG. 7 illustrates a method of projecting a random speaker subset (Spk 1, Spk2, Spk 3) selected from learning speech data into a random speaker-variance subspace using an LDA function for LSH according to an embodiment of the present disclosure. It is an example diagram shown. As illustrated, a two-dimensional vector may be projected as a one-dimensional vector using a method of performing RSS projection on a feature vector ⁇ (speaker feature vector) representing speech using the above equation (3) based on the LSH technique. R can be calculated using the LDA technique mentioned above. That is, since the same classification is searched even if the voices are different, not exactly the same voice is searched, r can be calculated so that the classification is well distinguished.
- a random speaker subset (Spk1, Spk2, Spk3) selected from the learning speech data can be projected onto the hyperplanes 710, 720, and 730 using r calculated through the LDA transformation matrix mentioned above.
- Hyperplanes 710, 720, and 730 may include hyperplanes associated with each of the three hash tables. When the random speaker subsets Spk1, Spk2, and Spk3 are projected on each hyperplane 710, 720, and 730, an area capable of distinguishing each random speaker subset on each hyperplane 710, 720, and 730 may be determined.
- the feature vector ⁇ representing the speaker's voice received from the speaker voice feature extraction module 240 may be projected onto each hyperplane 710, 720, and 730 using r calculated through the LDA transformation matrix.
- the speaker feature vector ⁇ is projected on the two selected hyperplanes using r calculated through the LDA transformation matrix to have a hash value (bit). Can be calculated.
- hash is 1 if it is close to the speaker classification 2 A bit is generated, and if it is close to the speaker classification 3, a hash bit with 0 may be generated.
- a hash value of 2 bits can be generated. This hash value can distinguish three speakers.
- FIG. 7 an example in which the LDA technique is applied to 3 speakers is described, but the same or similar technique may be applied to 4 or more speakers.
- Voxceleb 1 and 2 may include audio and video data automatically collected for large-capacity speaker identification.
- Voxceleb 1 and 2 may include 1,281,352 voice content (eg, utterances) from 7,365 speakers.
- Each voice content may be extracted from an audio or video clip, and each clip may include 10 to 50 voice content.
- Equation 8 is a result of an average Hamming distance between the same speakers and an average Hamming distance between different speakers according to an LSH according to an embodiment, a random sampling LDA technique, and a proposed LDA technique (LDA technique using RSS). It is a graph showing a graph showing values.
- the Hamming distance may be approximated or closer to the cosine distance as the number of hyperplanes k increases.
- the Hamming distance and the cosine distance can be expressed using Equation 4 below.
- the speaker representation for the same speaker that is, the speaker feature vector is likely to be included in the same or close region (bin, bucket, etc.), thus approximating the original distance.
- a small number of hash functions can be used. This may mean that the hamming distance of a speaker indication for the same speaker is closer than the hamming distance of a speaker indication for a different speaker.
- the approximate ability of the new projection matrix can be quantified by the average Hamming distance of the same speaker and different speakers.
- the proposed LDA technique shows values obtained by dividing the average Hamming distance of the same speaker by the Hamming distance of another speaker according to the LSH, random sampling LDA technique, and the proposed LDA technique (LDA technique using RSS). That is, in FIG. 8, the three techniques show how the same speaker is recognized according to the number of bits of the hyperplane and how much the distinction between different speakers is made, and that the lower the value, the better the speaker search is performed. Shows. In FIG. 8, the result of the proposed LDA technique shows that the distance between the same speakers is closer and the distance between different speakers is greater than the other two techniques. That is, the voice search performance of the proposed LDA technique may be superior to the other two techniques.
- 9 and 10 are graphs showing the result values according to the number of hyperplanes and hash tables for various hashing techniques.
- various hashing techniques include LSH technique using i-vector, random sampling LDA technique using i-vector, RSS technique using LDA using i-vector, one of the proposed techniques, and LSH technique using x-vector, x It may include a random sampling LDA method using -vector and an RSS technique using LDA using x-vector, one of the proposed techniques.
- 9 and 10 show the average error rate (EER) according to the number of hyperplanes for each hashing technique. As shown, it is shown that the RSS technique through LDA using x-vector has the best ERR result.
- EER average error rate
- the RSS method using LDA using x-vector shows better results than the RSS method using LDA using i-vector. This may be due to the fact that in the i-vector framework, the i-vector was distributed in the Gaussian distribution, whereas the DNN extracting the x-vector was more effectively learned using the original hot speaker label. In view of these results, when the RSS technique through LDA is applied to any speaker vector extracted from DNN as well as the x-vector, the EER for the same speaker search may yield more improved results.
- 11 and 12 are graphs showing a trade-off between search speed and performance according to various hashing techniques. This experiment was performed by setting various parameters k and L, and the results along the speed and performance axis were displayed.
- the proposed technique shows a significant performance improvement over other techniques. For example, in improving the speed while maintaining the speaker identification performance of 95% or more compared to the speaker speech linear search, the proposed technique showed a speed improvement of about 100 times or more than the speaker search linear search, and 7 times the KSH The above speed improvement was achieved.
- the EER of FIGS. 9 to 11 is an absolute value, not a comparison value with a linear search.
- a system and / or apparatus for retrieving content having the same voice as a target speaker's voice described herein includes wireless telephones, cellular telephones, laptop computers, wireless multimedia devices, wireless communication personal computer (PC) cards, PDAs , May represent various types of devices, such as an external modem, an internal modem, or a device communicating through a wireless channel.
- the device includes an access terminal (AT), an access unit, a subscriber unit, a mobile station, a mobile device, a mobile unit, a mobile phone, a mobile station, a remote station, a remote terminal, a remote unit, a user device, user equipment, It may have various names, such as handheld devices.
- Any device described herein may have memory for storing instructions and data, as well as hardware, software, firmware, or combinations thereof.
- processing units used to perform the techniques include one or more ASICs, DSPs, digital signal processing devices (DSPDs), programmable logic devices (PLDs). ), Field programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, electronic devices, other electronic units designed to perform the functions described herein. , Computer, or a combination thereof.
- various example logic blocks, modules, and circuits described in connection with the disclosure herein are general purpose processors, DSPs, ASICs, FPGAs or other programmable logic devices, discrete gate or transistor logic, discrete hardware components, Or it may be implemented or implemented in any combination of those designed to perform the functions described herein.
- a general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine.
- the processor may also be implemented as a combination of computing devices, for example, a DSP and microprocessor, multiple microprocessors, one or more microprocessors associated with a DSP core, or any other combination of such configurations.
- the techniques include random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), PROM (On computer readable media such as programmable read-only memory (EPROM), erasable programmable read-only memory (EPROM), electrically erasable PROM (EEPROM), flash memory, compact disc (CD), magnetic or optical data storage devices, etc. It can also be implemented as stored instructions.
- the instructions may be executable by one or more processors, and may cause the processor (s) to perform certain aspects of the functionality described herein.
- Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another.
- Storage media may be any available media that can be accessed by a computer.
- such computer-readable media may be in the form of instructions, data structures, or RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or desired program code. It can be used for transport or storage and can include any other media that can be accessed by a computer. Also, any connection is properly termed a computer-readable medium.
- the software is transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, wireless, and microwave
- coaxial cable , Fiber optic cable, twisted pair, digital subscriber line, or wireless technologies such as infrared, wireless, and microwave
- Disks and discs as used herein include CDs, laser disks, optical disks, digital versatile discs (DVDs), floppy disks, and Blu-ray disks, where disks are usually Data is reproduced magnetically, while discs optically reproduce data using a laser. Combinations of the above should also be included within the scope of computer readable media.
- the software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, removable disk, CD-ROM, or any other form of storage medium known.
- the exemplary storage medium can be coupled to a processor, such that the processor can read information from or write information to the storage medium. Alternatively, the storage medium may be integrated into the processor. Processors and storage media may reside within the ASIC.
- the ASIC may exist in the user terminal. Alternatively, the processor and storage medium may exist as separate components at the user terminal.
- example implementations may refer to utilizing aspects of the presently disclosed subject matter in the context of one or more standalone computer systems, the subject matter is not so limited, but rather associated with any computing environment, such as a network or distributed computing environment. It can also be implemented. Furthermore, aspects of the presently disclosed subject matter may be implemented in or across multiple processing chips or devices, and storage may be similarly affected across multiple devices. Such devices may include PCs, network servers, and handheld devices.
- the computer-readable recording medium includes all kinds of recording devices in which data readable by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disks, and optical data storage devices.
- the computer-readable recording medium can be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion. And, functional programs, codes, and code segments for implementing the embodiments can be easily inferred by programmers in the technical field to which the present invention pertains.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Library & Information Science (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Acoustics & Sound (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
복수의 컨텐츠 중 대상 화자 음성과 동일한 음성을 가진 컨텐츠를 검색하는 방법은, 대상 화자 음성에 대응되는 특징 벡터를 추출하는 단계, 학습 데이터 세트로부터 임의의 화자 서브 세트를 미리 결정된 수만큼 반복하여 선택하는 단계, 선택된 임의의 화자 서브 세트의 각각을 이용하여 Linear Discriminant Analysis (LDA) 변환 매트릭스를 미리 결정된 수만큼 반복하여 생성하는 단계, 생성된 LDA 변환 매트릭스의 각각을 이용하여 추출된 화자 특징 벡터를 선택된 대응 화자 서브 세트에 투영하는 단계, 추출된 화자 특징 벡터의 투영 영역의 각각이 선택된 대응 화자 서브 세트 중 가까운 화자 분류에 대응되는 값을 할당하는 단계, 할당된 값들을 기초로 추출된 특징 벡터에 대응되는 해쉬값을 생성하는 단계 및 복수의 컨텐츠 중, 생성된 해쉬값과 유사한 해쉬값을 가진 컨텐츠를 검색하는 단계를 포함한다.
Description
본 개시는 대상 화자 음성과 동일하거나 유사한 음성을 포함한 컨텐츠를 검색하는 방법 및 시스템에 관한 것이다. 보다 상세하게는, 대상 화자의 음성을 나타내는 특징을 추출하고, 해쉬 함수를 이용하여 추출된 특징에 대응하는 해쉬값을 산출하고, 추출된 해쉬값과 유사한 해시값과 연관된 컨텐츠를 검색할 수 있는 방법 및 시스템에 관한 것이다.
최근, 스마트폰, 컴퓨터 등의 전자 기기를 통해 인터넷을 이용하는 사용자들은 다양한 국가에서, 실시간으로 새롭게 생성되는 광범위한 비디오 클립, 오디오 클립 및 소셜 미디어 등의 데이터를 네트워크 상에서 손쉽게 접할 수 있다. 예를 들어, 특정 동영상 사이트에는 매 분 수백 내지 수만 시간의 비디오들이 업로드되고, 수억 내지 수십 억명 이상의 사용자가 업로드된 비디오들을 시청하고 있다. 이러한 온라인 비디오에는 화자(speaker)의 음성(voice)으로 생성된 스피치(speech)를 포함한 컨텐츠를 포함할 수 있다.
또한, 사람의 음성을 사전에 녹음해 두지 않고 필요한 음성을 재생시키는 기술인 음성 합성 기술(Text-To-Speech 기술)은 안내방송, 네비게이션, 인공지능 비서, 오디오북, 영상 제작 등과 같이 사람의 음성이 필요한 서비스 또는 어플리케이션에서 최근 각광받고 있다. 특히, deep learning 기반의 음성 합성 기술이 최근 급격히 발전되어, 특정인(예를 들어, 유명인사)의 음성 또는 목소리가 실제로 녹음된 것처럼 그 특정인에 대한 정교하게 합성된 음성이 생성될 수 있으며, 특정인의 실제 녹음된 음성인지 합성된 음성인지 구분하기 어려울 수 있다.
다만, 이러한 환경에서는, 특정인의 허락 없이 추출된 특정인의 음성 또는 음성 합성 기술을 통해 생성된 특정인의 음성을 이용하여 다양한 컨텐츠가 제작될 수 있다. 이에 따라, 특정인의 음성이 함부로 사용되거나 남용될 가능성이 있고, 그러한 합성 또는 복제된 음성이 그 특정인의 의도와 달리 사용되거나 범죄 등에 사용될 염려가 있다. 특정인의 음성이 특정인 자신의 허락없이 사용되는 것을 알아내고 나아가 방지하기 위하여, 자신의 음성 또는 목소리가 사용되는 컨텐츠가 검색될 수 있는 시스템이 요구된다.
한편, 종래의 멀티미디어 검색 기술 환경에서는 음악 검색이나 동영상 검색이 가능하게 하는 플랫폼을 제공하고 있다. 다만, 그러한 플랫폼 하에서 특정 음악 또는 동영상 컨텐츠는 검색될 수 있으나, 그러한 플랫폼을 사용하는 사용자가 특정인의 음성, 즉 특정인의 음성 특징을 기초로 그러한 음성을 포함한 컨텐츠의 검색할 수 없었다. 즉, 컨텐츠의 내용 기반이 아니라, 화자의 음성 특징을 기초로 동일한 화자의 음성으로 생성된 상이한 내용을 가진 컨텐츠는 검색될 수 없었다. 특히, 광범위한 음성이 존재하는 검색 공간(예를 들어, 네트워크) 상에서는 이러한 음성을 검색하는 것 자체가 실질적으로 어려웠다. 이에 따라, 온라인 상의 광범위한 음성 데이터 상에서 특정인의 음성을 신속하고 정확하게 검색하는 기술이 요구된다.
본 개시에 따른 방법 및 시스템은 화자의 음성을 나타내는 특징에 대응하는 해쉬값을 생성하고, 네트워크 상에 검색가능한 복수의 컨텐츠 중에서, 생성된 해쉬값을 이용하여 화자의 음성과 동일한 음성을 포함한 컨텐츠를 검색할 수 있다.
또한, 본 개시에 따른 방법 및 시스템은 대한 특정인에 대한 음성의 특징을 나타내는 화자 특징 벡터를 추출하고, 해쉬 함수를 이용하여 추출된 화자 특징 벡터를 랜덤 화자 변산도 서브 공간에 투영함으로써 해쉬값을 산출하고, 산출된 해쉬값과 유사한 해쉬값과 연관된 컨텐츠를 검색할 수 있다.
또한, 본 개시에 따른 방법 및 시스템은 특정 화자의 특징을 나타내는 화자 특징 벡터에 대응하는 해쉬값을 생성하기 위해 이용되는 랜덤 화자 서브 세트를 추출하는데 있어서, 복수의 특정 화자의 음성을 분류하도록 구성된 미리 학습된 음성 데이터를 이용할 수 있다.
본 개시는 방법, 시스템, 장치, 컴퓨터 프로그램 또는 명령어들을 저장하는 컴퓨터 판독가능 저장 매체를 포함한 다양한 방식으로 구현될 수 있다.
본 개시의 일 실시예에 따른 대상 화자의 음성과 동일한 음성을 포함한 컨텐츠를 검색하는 방법은, 대상 화자의 음성으로 생성된 사운드를 수신하는 단계, 사운드로부터 대상 화자의 음성을 나타내는 특징을 추출하는 단계, 해쉬 함수를 이용하여 대상 화자의 음성을 나타내는 특징에 대응하는 해쉬값을 산출하는 단계 및 네트워크 상에서 검색 가능한 복수의 컨텐츠 중에서, 산출된 해쉬값과 유사한 해쉬값과 연관된 컨텐츠를 검색하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따른 사운드로부터 대상 화자의 음성을 나타내는 특징을 추출하는 단계는, 사운드로부터 대상 화자의 음성에 대응되는 화자 특징 벡터를 추출하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따른 해쉬 함수를 이용하여 대상 화자의 음성을 나타내는 특징에 대응하는 해쉬값을 산출하는 단계는, 학습 음성 데이터로부터 랜덤 화자 서브 세트를 미리 결정된 수 만큼 반복하여 선택하는 단계 - 랜덤 화자 서브 세트는 복수의 화자 분류(class)와 연관됨 -, 선택된 랜덤 화자 서브 세트를 기초로 판별 변환 함수(discriminative transform function)를 생성하는 단계 - 해쉬 함수는 생성된 판별 변환 함수를 이용하여 생성됨 -, 추출된 화자 특징 벡터를 해쉬 함수에 입력하여 대상 화자의 음성을 나타내는 특징에 대응하는 해쉬값을 산출하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따른 선택된 랜덤 화자 서브 세트를 기초로 판별 변환 함수를 생성하는 단계는, 선택된 랜덤 화자 서브 세트를 이용하여, 랜덤 화자 서브 세트에 연관된 복수의 화자 분류에 대응하는 영역이 판별되도록 인공신경망 판별 모델을 학습하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따른 인공신경망 판별 모델을 학습하는 단계는, 선택된 랜덤 화자 서브 세트를 이용하여 선택된 랜덤 화자 서브 세트에 연관된 복수의 화자 분류 중 하나의 화자 분류 내의 특징 사이의 거리는 최소화하고 복수의 화자 분류 내의 특징 사이의 거리는 최대화하도록 인공신경망 판별 모델을 학습하는 단계를 포함할 수 있다.
본 개시의 일실시예에 따른 추출된 화자 특징 벡터를 해쉬 함수에 입력하여 대상 화자의 음성을 나타내는 특징에 대응하는 해쉬값을 산출하는 단계는, 추출된 화자 특징 벡터를 학습된 인공신경망 판별 모델에 입력하여, 복수의 화자 분류에 대응하는 복수의 영역 중에서, 추출된 화자 특징 벡터가 대응하는 적어도 하나의 화자 분류에 대한 영역에 대한 정보를 출력하는 단계 및 적어도 하나의 화자 분류에 대한 영역의 각각에 대응하는 값을 이용하여 대상 화자의 음성을 나타내는 특징에 대응하는 해쉬값을 생성하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따른 선택된 랜덤 화자 서브 세트를 기초로 판별 변환 함수를 생성하는 단계는, 선택된 랜덤 화자 서브 세트의 각각을 이용하여 LDA(Linear Discriminant Analysis) 변환 매트릭스를 미리 결정된 수만큼 반복하여 생성하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따른 추출된 화자 특징 벡터를 해쉬 함수에 입력하여 대상 화자의 음성을 나타내는 특징에 대응하는 해쉬값을 산출하는 단계는, 생성된 LDA 변환 매트릭스의 각각을 이용하여 추출된 화자 특징 벡터를 생성된 LDA 변환 매트릭스의 각각에 대응되는 랜덤 화자-변산도 서브공간(Random Speaker-variability Subspace)에 투영하는 단계, 및 추출된 화자 특징 벡터의 투영 영역의 각각이 랜덤 화자-변산도 서브 공간에 연관된 복수의 화자 분류 중 하나의 화자 분류에 속하는 경우, 하나의 화자 분류에 대응되는 값을 추출된 화자 특징 벡터의 투영 영역의 각각에 할당하는 단계 및 할당된 값들을 기초로 추출된 화자 특징 벡터에 대응되는 해쉬값을 생성하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따른 선택된 랜덤 화자 서브 세트의 각각을 이용하여 LDA 변환 매트릭스를 미리 결정된 수만큼 반복하여 생성하는 단계는, 선택된 랜덤 화자 서브 세트의 각각에 대해, 학습 음성 데이터를 이용하여 랜덤 화자 서브 세트와 연관된 복수의 화자 분류 사이의 스캐터 매트릭스를 생성하는 단계, 학습 음성 데이터를 이용하여 랜덤 화자 서브 세트와 연관된 하나의 화자 분류 내의 스캐터 매트릭스를 생성하는 단계; 및 복수의 화자 분류 사이의 스캐터 매트릭스 및 하나의 화자 분류 내의 스캐너 매트릭스의 비율(ratio)이 최대화되도록 LDA 변환 매트릭스를 생성하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따른 미리 결정된 수는 미리 결정된 해쉬 테이블의 총 수를 포함할 수 있다.
본 개시의 일 실시예에 따른 대상 화자의 음성과 동일한 음성을 포함한 컨텐츠를 검색하는 방법은 네트워크 상에서 검색 가능한 복수의 컨텐츠의 각각에 포함된 하나 이상의 화자의 음성을 나타내는 특징을 추출하는 단계 및 해쉬 함수를 이용하여 추출된 하나 이상의 화자의 음성을 나타내는 특징의 각각에 대응하는 해쉬값을 산출하는 단계를 더 포함할 수 있다.
본 개시의 일 실시예에 따른 산출된 해쉬값과 유사한 해쉬값과 연관된 컨텐츠를 검색하는 단계는, 네트워크 상에서 검색 가능한 복수의 컨텐츠의 각각에 대해 산출된 복수의 해쉬값의 각각과 대상 화자와 연관된 해쉬값을 비교하는 단계; 및 대상 화자의 음성에 대한 해쉬값과 유사한 해쉬값과 연관된 하나 이상의 컨텐츠가 존재한다면, 유사한 해쉬값과 연관된 하나 이상의 컨텐츠를 출력하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따른 컴퓨터 판독가능 저장 매체는, 상술한 바와 같은 대상 화자 음성과 동일한 음성을 포함한 컨텐츠를 검색하는 방법에 따른 각각의 단계를 수행하는 명령어를 포함하는 프로그램이 기록될 수 있다.
또한, 상술한 바와 같은 대상 화자 음성과 동일한 음성을 포함한 컨텐츠를 검색하는 방법과 연관된 장치, 시스템 및 기술적 수단 등이 또한 개시될 수 있다.
본 개시의 일부 실시예에 따르면, 특정인의 음성을 인덱싱하기 위하여 그러한 음성의 특징을 해쉬 형태로 나타내고, 이러한 해쉬 형태를 이용하여 특정인의 음성의 검색을 가능하게 함으로써, 특정인의 음성이 남용되거나 복제되는 컨텐츠를 찾아내고 이러한 컨텐츠의 무단 사용을 방지할 수 있다.
본 개시의 일부 실시예에 따르면, 음성에 대한 특징에 대응하는 해쉬값을 생성함에 있어서, 비교사 기법인 LSH 기법에 교사 기법을 이용하여 LDA 변환함수를 생성하고 생성된 LDA 변환 함수를 투영 매트릭스로서 사용함으로써, 선형 검색과 비교하여 검색 속도를 최대화하면서 음성 검색을 위한 성능 저하는 최소화할 수 있다.
도 1은 일 실시예에 따른 네트워크 상에서 검색 가능한 복수의 컨텐츠 중에서, 음성으로 생성된 사운드 내에 포함된 음성과 동일한 음성을 포함한 컨텐츠를 검색하는 시스템을 나타내는 도면이다.
도 2는 본 개시의 일 실시예에 따른 컨텐츠 검색 시스템의 블록도이다.
도 3은 본 개시의 일 실시예에 따른 대상 화자의 음성과 동일한 음성을 포함한 컨텐츠를 검색하는 방법을 나타내는 흐름도이다.
도 4은 본 개시의 일 실시예에 따른 Locality Sensitive Hashing(LSH) 기법을 이용하여 랜덤하게 추출된 화자 특징 벡터를 랜덤 투영하는 방식을 나타내는 예시도이다.
도 5는 본 개시의 일 실시예에 따른 LSH에 대한 판별 변환 함수(discriminative transform function)를 이용하여 화자의 음성을 나타내는 화자 특징 벡터에 대한 해쉬값을 산출하는 방법을 나타내는 흐름도이다.
도 6은 선형 판별 분석(LDA, Linear discriminant analysis) 함수를 이용하여 화자의 음성을 나타내는 화자 특징 벡터를 랜덤 화자-변산도 서브 공간에 투영하여 특징 벡터에 대한 해쉬값을 산출하는 방법을 나타내는 흐름도이다.
도 7는 본 개시의 일 실시예에 따른 LSH에 대한 LDA 함수를 이용하여 학습 음성 데이터로부터 선택된 랜덤 화자 서브 세트를 랜덤 화자-변산도 서브 공간에 투영하는 방식을 나타내는 예시도이다.
도 8은 LSH, 랜덤샘플링 LDA 기법 및 제안된 LDA 기법(RSS를 이용한 LDA 기법)에 따른 동일 화자의 평균 해밍 거리(Hamming distance) 및 상이한 화자 사이의 평균 해밍 거리에 따른 결과값을 보여주는 그래프를 나타내는 도면이다.
도 9 및 도 10은 다양한 해쉬 기법에 대해 초평면 및 해쉬 테이블의 수에 따른 결과값을 보여주는 그래프를 나타내는 도면이다.
도 10 및 11은 다양한 해쉬 기법에 따른 검색 속도 및 성능 사이의 트레이드 오프(trade-off)를 보여주는 그래프를 나타내는 도면이다.
개시된 실시예의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 개시가 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것일 뿐이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 개시된 실시예에 대해 구체적으로 설명하기로 한다.
본 명세서에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 관련 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 명세서에서의 단수의 표현은 문맥상 명백하게 단수인 것으로 특정하지 않는 한, 복수의 표현을 포함한다. 또한 복수의 표현은 문맥상 명백하게 복수인 것으로 특정하지 않는 한, 단수의 표현을 포함한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다.
또한, 명세서에서 사용되는 '부' 또는 '모듈'이라는 용어는 소프트웨어 또는 하드웨어 구성요소를 의미하며, '부' 또는 '모듈'은 어떤 역할들을 수행한다. 그렇지만 '부' 또는 '모듈'은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부' 또는 '모듈'은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '부' 또는 '모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '부' 또는 '모듈'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '부' 또는 '모듈'들로 결합되거나 추가적인 구성요소들과 '부' 또는 '모듈'들로 더 분리될 수 있다.
본 개시의 일 실시예에 따르면 '부' 또는 '모듈'은 프로세서 및 메모리로 구현될 수 있다. 용어 '프로세서' 는 범용 프로세서, 중앙 처리 장치 (CPU), 마이크로프로세서, 디지털 신호 프로세서 (DSP), 제어기, 마이크로제어기, 상태 머신 등을 포함하도록 넓게 해석되어야 한다. 몇몇 환경에서는, '프로세서' 는 주문형 반도체 (ASIC), 프로그램가능 로직 디바이스 (PLD), 필드 프로그램가능 게이트 어레이 (FPGA) 등을 지칭할 수도 있다. 용어 '프로세서' 는, 예를 들어, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서들의 조합, DSP 코어와 결합한 하나 이상의 마이크로프로세서들의 조합, 또는 임의의 다른 그러한 구성들의 조합과 같은 처리 디바이스들의 조합을 지칭할 수도 있다.
용어 '메모리' 는 전자 정보를 저장 가능한 임의의 전자 컴포넌트를 포함하도록 넓게 해석되어야 한다. 용어 메모리는 임의 액세스 메모리 (RAM), 판독-전용 메모리 (ROM), 비-휘발성 임의 액세스 메모리 (NVRAM), 프로그램가능 판독-전용 메모리 (PROM), 소거-프로그램가능 판독 전용 메모리 (EPROM), 전기적으로 소거가능 PROM (EEPROM), 플래쉬 메모리, 자기 또는 광학 데이터 저장장치, 레지스터들 등과 같은 프로세서-판독가능 매체의 다양한 유형들을 지칭할 수도 있다. 프로세서가 메모리로부터 정보를 판독하고/하거나 메모리에 정보를 기록할 수 있다면 메모리는 프로세서와 전자 통신 상태에 있다고 불린다. 프로세서에 집적된 메모리는 프로세서와 전자 통신 상태에 있다.
본 개시에서, '음성'은 사람의 발음기관에서 나오는 구체적이고 물리적 소리를 지칭할 수 있으며, 발화하는 사람, 즉 화자 마다 음성을 나타내는 특징은 서로 상이할 수 있다. 또한, '음성'은 임의의 음성 합성 기술을 통해 성생된 컨텐츠 내에 포함된 음성을 지칭할 수 있다.
본 개시에서, '컨텐츠'는 디지털 방식으로 제작되어 컨텐츠 검색 시스템에 의해 검색될 수 있는 화자의 음성을 포함한 임의의 정보 또는 그 내용물을 포함할 수 있다. 예를 들어, '컨텐츠'는 화자의 음성으로 생성된 오디오 컨텐츠, 이러한 오디오 컨텐츠를 포함한 영상 컨텐츠를 포함할 수 있다.
본 개시에서, '화자의 음성'은 화자의 발음 기관을 통해 내는 구체적이고 물리적 소리를 나타내거나, 음성 합성 기술을 통해 합성된 소리 내에 포함된, 화자의 음성 특징이 반영된 합성 음성을 포함할 수 있다.
본 개시에서, '해쉬 함수'는 임의의 길이를 가진 데이터 또는 정보를 입력하여 고정된 길이의 해쉬값을 출력하도록 구성된 함수 또는 네트워크(예를 들어, 뉴럴 네트워크, 딥뉴럴 네트워크)를 지칭할 수 있다. 또한, '해쉬 함수'는 복수의 해쉬 함수를 연결한 해쉬함수를 포함하거나 독립적으로 사용되는 복수의 해쉬 함수 또는 네트워크를 포함할 수 있다.
본 개시에서, '네트워크 상에' 또는 '네트워크 상에서'라는 용어는 유무선 통신이 가능한 임의의 전자 기기를 통해 검색 또는 접근 가능한 상태를 지칭할수 있다. 예를 들어, '네트워크 상에서'라는 의미는 임의의 전자 기기와 유무선으로 연결된 임의의 장치 내에 저장된 임의의 컨텐츠를 검색 또는 접근 가능한 상태를 나타낼 수 있다.
본 개시에서, '유사' 또는 '유사한'은 '동일' 또는 '유사한'을 포함할 수 있다.
아래에서는 첨부한 도면을 참고하여 실시예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략한다.
도 1은 일 실시예에 따른 네트워크(140) 상에서 검색가능한 복수의 컨텐츠(150_1, 150_2, 150_3, ..., 150_N) 중에서, 화자의 음성으로 생성된 사운드 내에 포함된 음성과 동일한 음성을 포함한 컨텐츠를 검색하는 시스템(130)을 나타내는 도면이다. 여기서, 사용자 단말(110)은 입력 수단(예를 들어: 마이크로폰 등)을 통해 화자의 음성을 수신할 수 있으며, 통신 모듈을 구비하여 네트워크(140) 상에 유무선으로 연결된 임의의 장치 및/또는 시스템에 접속 가능하고, 컨텐츠 출력이 가능한 임의의 전자 기기(예를 들어, 스마트폰, PC, 태블릿 PC 등)을 포함할 수 있다. 일 실시예에 따르면, 사용자 단말(110)은 화자의 음성으로 생성된 사운드를 입력받을 수 있다. 예를 들어, 사용자 단말(110)은 마이크로폰을 통해 화자의 음성으로 생성된 사운드를 입력받을 수 있다. 이와 달리, 화자의 음성으로 생성된 사운드는 사용자 단말(110)에 저장되거나 사용자 단말(110)에 의해 검색되거나 접근 가능한 임의의 장치로부터 수신된 사운드를 포함할 수 있다. 또는, 화자의 음성으로 생성된 사운드는 음성 합성 기술을 이용하여 생성된 합성 음성을 포함한 사운드일 수 있다. 다른 실시예에 따르면, 사용자 단말(110)은 음성으로 생성된 사운드를 적어도 일부분으로서 포함한 오디오 컨텐츠를 수신하거나 이러한 사운드를 포함한 영상 컨텐츠를 수신할 수 있다. 화자의 음성으로 생성된 사운드 내에 포함된 음성과 동일한 음성을 포함한 컨텐츠를 검색하기 위하여, 이러한 사운드, 오디오 컨텐츠 및/또는 영상 컨텐츠는 컨텐츠 검색 시스템(130)에 쿼리로서 제공될 수 있다.
컨텐츠 검색 시스템(130)은 수신된 사운드, 오디오 컨텐츠, 및/또는 영상 컨텐츠 내에 포함된 음성을 나타내는 특징을 추출하도록 구성될 수 있다. 또한, 컨텐츠 검색 시스템(130)은 추출된 화자의 음성을 나타내는 특징에 대응하는 해쉬값을 산출하도록 구성될 수 있다. 예를 들어, 이러한 해쉬값은 추출된 특징 및 해쉬 함수를 이용하여 산출될 수 있다. 여기서, 해쉬값은 복수의 화자의 음성을 구분하고 화자의 음성이 색인화(indexing)되어 저장될 수 있다. 이러한 해쉬값의 특성에 따라, 추출된 화자의 음성을 나타내는 특징에 대응하는 해쉬값과 유사한 해쉬값과 연관된 복수의 음성은 추출된 화자의 음성과 동일한 음성을 지칭할 수 있다. 여기서, 유사한 해쉬값은 추출된 화자의 음성을 나타내는 특징에 대응하는 해쉬값과 일정 이상의 유사도를 가진 해쉬값 또는 가장 가까운 해쉬값을 지칭할 수 있다.
컨텐츠 검색 시스템(130)은 네트워크(140)를 통해 복수의 컨텐츠(150_1 내지 150_N)를 검색하거나 접속할 수 있으며, 복수의 컨텐츠(150_1 내지 150_N )의 각각에 포함된 하나 이상의 화자의 음성을 나타내는 특징을 추출하도록 구성될 수 있다. 그리고 나서, 컨텐츠 검색 시스템(130)은 추출된 하나 이상의 화자 음성을 나타내는 특징의 각각에 대응하는 해쉬값을 산출하도록 구성될 수 있다. 여기서, 컨텐츠 검색 시스템(130)은 사운드에 포함된 화자의 음성에 대한 해쉬값을 산출할 시 사용된 해쉬 함수와 동일한 해쉬 함수를 사용하여 복수의 컨텐츠(150_1 내지 150_N)의 각각에 포함된 하나 이상의 화자의 음성을 나타내는 특징에 대응하는 해쉬값을 산출할 수 있다. 일 실시예에 따르면, 이렇게 추출된 복수의 컨텐츠(150_1 내지 150_N)의 각각에 포함된 하나 이상의 화자의 음성에 대한 해쉬값은 컨텐츠 검색 시스템(130)에 의해 검색되거나 접근 가능한 임의의 장치에 저장될 수 있다. 예를 들어, 이러한 해쉬값은 컨텐츠 검색 시스템(130)에 저장되거나 컨텐츠 검색 시스템(130)에 의해 접근 가능한 서버 또는 클라우딩 시스템에 저장될 수 있다. 다른 실시예에 따르면, 이러한 해쉬값은 복수의 컨텐츠(150_1 내지 150_N)가 저장된 임의의 장치에 제공되어 복수의 컨텐츠(150_1 내지 150_N)와 연관되어 저장될 수 있다.
컨텐츠 검색 시스템(130)은 수신된 화자의 음성으로 생성된 사운드에 연관된 해쉬값을 복수의 컨텐츠(150_1 내지 150_N)의 각각에 연관된 복수의 해쉬값의 각각과 비교하도록 구성될 수 있다. 그리고 나서, 수신된 화자의 음성에 대한 해쉬값과 유사한 해쉬값과 연관된 하나 이상의 컨텐츠가 검색된다면, 검색된 하나 이상의 컨텐츠가 출력되도록 구성될 수 있다. 일 실시예에 따르면, 동일한 해쉬값과 연관된 하나 이상의 컨텐츠는 화자의 음성으로 생성된 사운드를 제공한 사용자 단말(110)로 출력 또는 제공될 수 있다. 예를 들어, 유사한 해쉬값과 연관된 하나 이상의 컨텐츠의 리스트가 사용자 단말(110)에 제공될 수 있다. 사용자 단말(110)의 사용자는 이렇게 제공된 하나 이상의 컨텐츠를 확인하고, 특정 화자의 음성이 남용되거나 복제된 컨텐츠를 찾아낼 수 있으며, 나아가 이러한 컨텐츠의 무단 사용을 방지하기 위한 조치를 취할 수 있다.
도 2는 본 개시의 일 실시예에 따른 컨텐츠 검색 시스템(130)의 블록도이다. 컨텐츠 검색 시스템(130)은 통신 모듈(210), 데이터베이스(220), 프로세서(230)를 포함하도록 구성될 수 있다. 여기서, 프로세서(230)는 화자 음성 특징 추출 모듈(240), 음성 해쉬값 생성 모듈(250) 및 컨텐츠 추출 모듈(260)을 포함하도록 구성될 수 있다. 통신 모듈(210)은 컨텐츠 검색 시스템(130)이 네트워크(140)를 통해 외부 장치와 신호 또는 데이터를 송수신하도록 구성될 수 있다. 여기서, 외부 장치는 특정 화자의 음성으로 생성된 사운드를 쿼리로서 컨텐츠 검색 시스템(130)에 제공하고 특정 화자의 음성과 동일한 음성의 컨텐츠를 제공받을 수 있는 사용자 단말(110), 하나 이상의 컨텐츠를 저장하고 있는 임의의 전자 기기, 학습 음성 데이터 및/또는 해쉬값 정보 등을 저장하고 있는 임의의 서버 장치, 클라우딩 시스템 등을 포함할 수 있다.
일 실시예에 따르면, 통신 모듈(210)은 사용자 단말(110)로부터 대상(target) 화자의 음성으로 생성된 사운드를 수신하도록 구성될 수 있다. 또한, 통신 모듈(210)은 복수의 외부 장치로부터 복수의 컨텐츠를 수신하도록 구성될 수 있다. 사용자 단말(110)으로부터 수신된 대상 화자의 음성으로 생성된 사운드 및 복수의 외부 장치로부터 수신된 컨텐츠는 프로세서(230)의 화자 음성 특징 추출 모듈(240)에 제공될 수 있다. 대상 화자의 음성으로 생성된 사운드를 수신하는 것에 응답하여, 복수의 외부 장치로부터 수신된 복수의 컨텐츠 중에서 대상 화자의 음성과 동일하거나 유사한 음성을 포함한 컨텐츠가 통신 모듈(210)을 통해 사용자 단말(110)로 송신하도록 구성될 수 있다.
프로세서(230)의 화자 음성 특징 추출 모듈(240)은 수신된 사운드로부터 대상 화자의 음성을 나타내는 특징을 추출하도록 구성될 수 있다. 일 실시예에 따르면, 화자 음성 특징 추출 모듈(240)은 수신된 사운드로부터 대상 화자의 음성에 대응되는 화자 특징 벡터를 추출하도록 구성될 수 있다. 이러한 화자 특징 벡터는 대상 화자가 복수의 다른 화자들과 구분되도록 대상 화자의 특징을 나타내는 임의의 특징 벡터를 지칭할 수 있다.
일 실시예에 따르면, 이러한 화자 특징 벡터는 수신된 사운드 내에 포함된 화자의 음성을 구분할 수 있도록 단일 저차원 잠재 벡터(single low-dimensional latent vector)로 나타낼 수 있다. 이러한 단일 저차원 잠재 벡터는 i-vector를 포함할 수 있다. 이러한 i-vector 기법은 GMM (Gaussian Mixture Model)-UBM (Universal Background Mode) 하에서 고려될 수 있는데, 구체적으로, GMM에서 각 개별적인 평균 벡터가 UBM의 평균 벡터의 변화(shift)를 나타낼 수 있으며, 모든 평균의 변화는 단일의 벡터(즉, i-vector)에 의해 제어될 수 있다는 추정에 기반될 수 있다. 여기서, i-vector ω (화자 특징 벡터)는 아래와 같은 수식 1로 나타낼 수 있다.
[수학식 1]
여기서, M은 화자를 나타내고, m은 화자 의존적 및 독립적 GMM 수퍼 벡터(speaker dependent and independent GMM super-vector)를 나타낼 수 있으며, T는 총 변산도 매트릭스(total variability matrix)를 나타낼 수 있다. 이러한 i-vector는 화자의 음성을 효과적으로 구분할 수 있도록 임의의 학습 음성 데이터 세트를 이용하여 학습될 수 있다.
다른 실시예에 따르면, 이러한 화자 특징 벡터는 DNN을 이용한 화자 임베딩 벡터를 포함할 수 있다. 화자 임베딩 벡터는 배경 소음(background noise)와 같은 증강 데이터(augmented data)를 포함한 대용량의 데이터 세트를 이용할 수 있다. 여기서, 화자 임베딩 벡터는 학습 음성 데이터 세트에서 N 화자를 분류하기 위하여 학습된 네트워크로부터 히든 레이어(hidden layer) 중 하나로부터 추출될 수 있다. 예를 들어, 화자 임베딩 벡터는 TDNN(Time Delayed Neural Network)에 기반한 뉴럴 네트워크 구조로부터 추출된 x-vector를 포함할 수 있다. 이러한 x-vector 또한 배경 소음을 가진 증강 데이터로부터의 장점을 가질 수 있다. 이러한 x-vector는 화자의 음성을 효과적으로 구분할 수 있도록 임의의 학습 음성 데이터 세트를 이용하여 학습될 수 있다. 화자 음성 특징 추출 모듈(240)은 수신된 사운드로부터 추출된 대상 화자의 음성을 나타내는 특징 또는 화자 특징 벡터를 프로세서(230)의 음성 해쉬값 생성 모듈(250)에 제공할 수 있다.
화자 음성 특징 추출 모듈(240)은 네트워크 상에서 검색 가능한 복수의 컨텐츠를 통신 모듈(210)을 통해 수신할 수 있다. 화자 음성 특징 추출 모듈(240)은 복수의 컨텐츠의 각각에 포함된 하나 이상의 화자의 음성을 나타내는 특징을 추출할 수 있다. 예를 들어, 화자 음성 특징 추출 모듈(240)은 수신된 컨텐츠의 일부인 오디오 세그먼트(audio)에 포함된 음성을 나타내는 특징을 추출할 수 있다. 화자 음성 특징 추출 모듈(240)은 대상 화자의 특징 또는 화자 특징 벡터를 추출하는 방식과 동일한 방식으로 수신된 복수의 컨텐츠의 각각에 포함된 하나 이상의 음성을 나타내는 특징 또는 화자 특징 벡터(예를 들어, i-vector, x-vector 등)를 추출하도록 구성될 수 있다. 복수의 컨텐츠와 연관되어 추출된 특징 또는 화자 특징 벡터는 음성 해쉬값 생성 모듈(250)에 제공될 수 있다.
음성 해쉬값 생성 모듈(250)은 해쉬 함수를 이용하여 화자 음성 특징 추출 모듈로부터 수신된 화자의 음성을 나타내는 특징에 대응하는 해쉬값을 생성할 수 있다. 여기서 해쉬 함수는 Locality Sensitive Hashing(LSH), Random Speaker-variability Subspace (RSS) projection, Discriminative Transform Function or Network 중 적어도 하나의 기법을 이용하여 생성될 수 있다. 이러한 해쉬 함수는 아래 도 4 내지 도 6을 이용하여 상세히 설명된다. 일 실시예에 따르면, 음성 해쉬값 생성 모듈(250)은 해쉬 함수를 이용하여 대상 화자의 음성을 나타내는 특징에 대응하는 해쉬값을 산출하도록 구성될 수 있다. 또한, 음성 해쉬값 생성 모듈(250)은 대상 화장에 대한 해쉬값을 산출하는데 사용된 해쉬 함수를 이용하여 수신된 복수의 컨텐츠에 포함된 하나 이상의 화자 음성을 나타내는 특징의 각각에 대응하는 해쉬값을 산출하도록 구성될 수 있다. 이렇게 산출된 해쉬값은 프로세서(230)의 컨텐츠 추출 모듈(260)에 제공될 수 있다.
컨텐츠 추출 모듈(260)은 네트워크 상에서 검색 가능한 복수의 컨텐츠 중에서, 수신된 대상 화자의 음성에 대한 해쉬값과 유사한 해쉬값과 연관된 컨텐츠를 검색하도록 구성될 수 있다. 일 실시예에 따르면, 컨텐츠 추출 모듈(260)은 수신된 대상 화자의 음성에 대한 해쉬값을 검색된 복수의 컨텐츠에 대해 산출된 복수의 해쉬값의 각각과 비교하여, 대상 화자의 음성에 대한 해쉬값과 유사한 해쉬값과 연관된 하나 이상의 컨텐츠를 추출하도록 구성될 수 있다. 다른 실시예에 따르면, 복수의 컨텐츠는 컨텐츠에 포함된 음성 특징 및/또는 대응 해쉬값에 따라 분류화(classify)될 수 있으며, 컨텐츠 추출 모듈(260)은 대상 화자의 음성에 대응되는 분류를 선택하고, 대상 화자의 음성에 대응하는 해쉬값을 선택된 분류에 포함된 해쉬값들과 비교하여 유사한 해쉬값과 연관된 하나 이상의 컨텐츠를 추출하도록 구성될 수 있다.
본 개시에서, 대상 화자의 음성의 특징에 대응하는 해쉬값(제1 해쉬값)과 유사한 해쉬값(제2 해쉬값)은 복수의 해쉬값 중에서 미리 결정된 유사도 이상을 가진 해쉬값을 지칭할 수 있다. 여기서, 미리 결정된 유사도는 두 해쉬값이 동일한 음성을 가리키기 위해 요구되는 유사도를 지칭될 수 있으며, 학습 음성 데이터를 이용하여 결정되거나 학습될 수 있다. 예를 들어, 제1 해쉬값이 복수의 해쉬값의 각각과 비교될 때, 제1 해쉬값의 해쉬 비트와 상이한 비트의 수가 미리 결정된 개수 이하의 해쉬값이 제2 해쉬값으로서 선택될 수 있다. 또 다른 예로서, 제1 해쉬값과 유사한 제2 해쉬값은 해쉬값에 포함된 해쉬 비트의 가중치를 고려하여 선택될 수 있다. 이러한 구성 하에서, 해쉬값에 포함된 해쉬 비트들에는 가중치가 부여될 수 있으며, 컨텐츠 추출 모듈(260)은 제1 해쉬값에 포함된 해쉬 비트와 복수의 해쉬값의 각각에 포함된 해쉬 비트를 비교할 때, 상이한 해쉬 비트와 부여된 가중치를 고려하여 제1 해쉬값과 복수의 해쉬값의 각각에 대한 유사도를 산출하고, 일정 이상의 유사도를 가진 하나 이상의 해쉬값을 제2 해쉬값으로 결정할 수 있으며, 제2 해쉬값과 연관된 하나 이상의 컨텐츠를 추출할 수 있다.
추출된 컨텐츠는 통신 모듈(210)을 통해 대상 화자의 음성을 제공한 사용자 단말에 제공될 수 있다. 예를 들어, 이러한 컨텐츠가 복수의 컨텐츠를 포함하는 경우, 복수의 컨텐츠에 대한 정보(예를 들어, 링크 정보, 썸네일 등)가 리스트의 형태로 생성되어 사용자 단말에 제공될 수 있다.
데이터베이스(220)는 프로세서(230)에 의해 이용되거나 출력된 임의의 데이터 또는 정보를 포함할 수 있다. 일 실시예에 따르면, 데이터베이스(220)는 복수의 음성을 나타내는 특징에 대응하는 해쉬값을 저장하도록 구성될 수 있다. 예를 들어, 데이터베이스(220)는 해쉬값을 산출하는데 사용되는 해쉬 테이블을 포함할 수 있으며, 각 해쉬 테이블은 해쉬비트 뿐만 아니라 각 해쉬비트에 대한 가중치를 포함할 수 있다. 또한, 데이터베이스(220)는 해쉬 함수를 저장할 수 있으며, 해쉬 함수를 산출하는 데에 사용되는 학습 음성 데이터를 저장하도록 구성될 수 있다. 여기서, 학습 음성 데이터는 복수의 화자의 음성에서 각 화자의 음성을 더욱 효과적으로 구분하기 위해 학습된 음성 데이터의 임의의 세트를 포함할 수 있다. 예를 들어, 학습 음성 데이터는 화자의 음성 특징을 기초로 생성된 화자를 나타내는 원-핫 화자 ID-벡터 및/또는 임베딩 벡터를 포함할 수 있다. 이와 달리, 학습 음성 데이터는 화자를 구분하기 위해 이용되는 임의의 뉴럴 네트워크를 학습하기 위해 사용되는 임의의 학습 데이터를 포함할 수 있다. 도 2에서는 컨텐츠 검색 시스템(130)이 데이터베이스(220)를 포함하도록 구성되었으나, 이에 한정되지 않으며, 데이터베이스는 컨텐츠 검색 시스템(130)이 접근 가능한 임의의 장치에 저장될 수 있다.
도 3는 본 개시의 일 실시예에 따른 대상 화자의 음성과 동일한 음성을 포함한 컨텐츠를 검색하는 방법을 나타내는 흐름도이다. 먼저, 단계 S310에서, 컨텐츠 검색 시스템(130)은 대상 화자의 음성으로 생성된 사운드를 수신할 수 있다. 예를 들어, 컨텐츠 검색 시스템(130)은 대상 화자의 음성으로 생성된 사운드를 적어도 일부로서 포함한 오디오 컨텐츠 또는 비디오 컨텐츠를 수신할 수 있다. 또한, 이러한 대상 화자의 음성으로 생성된 사운드는 대상 화자의 음성과 동일한 음성을 가진 컨텐츠를 검색하고자 하는 임의의 전자 기기로부터 수신될 수 있다.
컨텐츠 검색 시스템(130)은 단계 S320에서, 수신된 사운드로부터 대상 화자의 음성을 나타내는 특징을 추출하도록 구성될 수 있다. 예를 들어, 대상 화자의 음성을 나타내는 특징은 i-vector, x-vector 등과 같은 화자 특징 벡터로 나타낼 수 있다. 단계 S330에서, 컨텐츠 검색 시스템(130)은 해쉬 함수를 이용하여 대상 화자의 음성을 나타내는 특징에 대응하는 해쉬값을 산출할 수 있다. 그리고 나서, 컨텐츠 검색 시스템(130)은 네트워크 상에서 검색가능한 복수의 컨텐츠 중에서, 대상 화자의 음성에 대한 해쉬값과 유사한 해쉬값과 연관된 하나 이상의 컨텐츠를 검색할 수 있다. 예를 들어, 컨텐츠 검색 시스템(130)은 네트워 상에서 검색 가능한 복수의 컨텐츠의 각각에 대한 해쉬값을 산출할 수 있으며, 산출된 해쉬값의 각각과 대상 화자의 음성에 대한 해쉬값을 비교하여 유사한 해쉬값(예를 들어, 일정 유사도 이상의 해쉬값)과 연관된 하나 이상의 컨텐츠를 검색할 수 있다.
도 4는 본 개시의 일 실시예에 따른 Locality Sensitive Hashing(LSH) 기법을 이용하여 랜덤하게 추출된 화자 특징 벡터를 랜덤 투영하는 방식을 나타내는 예시도이다. 여기서, LSH 기법은 가장 가까운 인접 서치 알고리즘(nearest neighbor search algorithm)의 하나로서, i-vector를 이용하여 동일한 음성을 가진 오디오 세그먼트 검색의 정확성을 유지하면서 대용량의 데이터에서 관련 음성을 신속히 검색하는 것이 가능한 알고리즘을 나타낼 수 있다. 또한, LSH 기법은 데이터와 독립적인 비교사(unsupervised) 해쉬 기법으로서 화자의 음성을 나타내는 화자 특징 벡터(여기서, i-vector)를 초평면(hyperplane)에 랜덤 투영할 수 있다. 이러한 해쉬 기법은 동일하거나 유사한 특징을 가진 동일 또는 유사 벡터를 높은 확률로 동일한 영역(예를 들어, bin, bucket)에 매핑시킬 수 있다. 예를 들어, 아래의 수식, 즉 해쉬 함수를 이용하여 해쉬값을 산출해낼 수 있다.
[수학식 2]
여기서, r은 표준 정규 분포로부터 산출된 d-차수 임의 투영 벡터를 나타내고, d는 최초 음성 특징 벡터인 i-vector ω(화자 특징 벡터)의 차수를 나타낼 수 있다. i-vector ω는 위 해쉬함수를 이용하여 매핑되어 해쉬값으로 나타낼 수 있다. n
일 실시예에 따르면, 다양한 해쉬 함수들이 이어질 수 있으며, 복수 및 독립적인 해쉬 함수를 사용함으로써 성능을 향상시킬 수 있다. 예를 들어, d x k 차수 랜덤 투영 매트릭스 Rl을 이용할 수 있는데, 여기서 k는 해시 테이블 당 초평면의 수를 나타내고, l은 해쉬 테이블의 색인(1 ≤ l ≤ L)을 나타내며, L은 해쉬 테이블의 인덱스를 나타낸다. 여기서, k와 L은 성능과 복잡도 등을 고려하여 적절히 선택될 수 있다.
도 4는 위 수학식 2을 이용하여 음성을 나타내는 특징벡터 ω를 r이라는 투영 벡터를 이용하여 랜덤하게 추출된 2차원 벡터를 1차원 벡터로 투영하는 그래프를 보여준다. 도시된 바와 같이, 도 4에서, 2차원의 화자 특징 벡터(spk1, spk2, spk3)가 임의로 추출된 4개의 초평면(410, 420, 430, 440)의 각각에 랜덤 투영하는 과정을 나타낸다. 특징 벡터(spk1, spk2, spk3)의 각각이 각 초평면(410, 420, 430, 440)에 투영되기 위하여 위 수학식 2가 이용될 수 있다. 특징 벡터(spk1, spk2, spk3)이 각 초평면(410, 420, 430, 440)에 투영되었을 때 각 특징 벡터(spk1, spk2, spk3)를 구분할 수 있는 영역이 결정될 수 있다. 그리고 나서, 화자 음성 특징 추출 모듈(240)으로부터 수신된 화자 음성을 나타내는 특징, 즉 화자 특징 벡터를 r이라는 투영 벡터를 이용하여 각 초평면(410, 420, 430, 440)에 투영될 수 있고, 각 투영 영역에 부여된 값에 기초하여 화자 특징 벡터에 대응하는 해쉬값이 산출될 수 있다. 화자 특징 벡터가 투영된 초평면에 대응하는 영역이 0이면 해쉬비트가 0이 부여되고, 1이면 해쉬 비트가 1이 부여될 수 있다. 즉, 이러한 방식은 r을 임의로 추출해서 많이 투영하면 해쉬 값이 생성되는 랜덤 투영에 기초한 LSH 기법을 이용한 방식이다. 본 예시에서는, 4개의 초평면에 화자 특징 벡터가 투영될 수 있으므로, 4bit의 해쉬값으로 표현될 수 있다. 이와 달리, 4개의 초 평면 중 3개의 초평면이 선택됨으로써 3bit의 해쉬값으로 표현될 수 있다. 이러한 해쉬값은 화자 특징 벡터를 인덱싱하는데에 사용될 수 있다.
도 5는 본 개시의 일 실시예에 따른 LSH에 대한 판별 변환 함수(discriminative transform function)를 이용하여 화자의 음성을 나타내는 화자 특징 벡터에 대한 해쉬값을 산출하는 방법을 나타내는 흐름도이다. 일 실시예에 따르면, 동일한 화자의 음성을 동일한 영역에 더 효과적으로 매핑시키기 위하여, 위에서 설명드린 비교사 해쉬 기법인 LSH에 화자 라벨을 이용하여, 즉 교사 기법을 이용하여, 판별 변환 함수를 생성할 있으며, 생성된 판별 변환 함수는 도 4에서 설명된 투영 매트릭스 Rl를 대신하여 사용될 수 있다. 여기서, 판별 변환 함수는 동일한 화자 분류(class) 내의 특징들 사이의 거리는 최소화하고 상이한 분류 내의 특징 사이의 거리는 최대화할 수 있는 임의의 판별 변환 방법을 지칭할 수 있다. 일 실시예에 따르면, 이러한 판별 변환 함수는 랜덤 화자 서브 세트를 이용하여 랜덤 화자 서브 세트에 연관된 복수의 화자 분류에 대응하는 영역이 판별되도록 인공신경망 판별 모델(예를 들어, 딥 뉴럴 네트워크)를 학습하여 생성할 수 있다, 비선형 함수(네트워크)를 생성할 수 있다. 다른 실시예에 따르면, 랜덤 화자 서브 세트로부터의 음성 또는 말(utterances)을 이용하여 Linear Discriminant Analysis (LDA) 변환 매트릭스가 이러한 판별 변환 함수로서 생성될 수 있으며, 생성된 매트릭스는 도 4에서 설명된 투영 매트릭스 Rl를 대신하여 사용될 수 있다.
단계 S510에서, 음성 해쉬값 생성 모듈(S250)은 학습 음성 데이터로부터 랜덤 화자 서브 세트를 미리 결정된 수만큼 반복하여 선택할 수 있다. 여기서, 학습 음성 데이터는 랜덤 화자 서브 세트를 포함할 수 있으며, 각 화자의 서브 세트를 구분할 수 있는 화자 라벨에 대한 정보를 포함할 수 있다. 또한, 미리 결정된 수는, 미리 결정된 해쉬 테이블의 총 수를 나타낼 수 있다. 이에 따라, 랜덤 화자 서브 세트는 복수의 화자 분류와 연관될 수 있다. 일 실시예에 따르면, Sl는 학습 음성 데이터로부터 임의로 선택된 화자 서브세트(S는 speaker)일 수 있으며, 여기서, 화자의 수는 Ns일 수 있다.
그리고 나서, 선택된 랜덤 화자 서브 세트의 각각을 기초로 판별 변환 함수가 생성될 수 있다(단계 S520). 이러한 판별 변환 함수는 해쉬 함수를 생성하는데에 이용될 수 있다. 일 실시예에 따르면, 학습 음성 데이터로부터 선택된 랜덤 화자 서브 세트를 이용하여 랜덤 화자 서브 세트에 연관된 복수의 화자 분류에 대응하는 영역이 판별되도록 인공신경망 판별 모델이 학습될 수 있으며, 이러한 학습된 인공신경망 판별 모델은 비선형 함수 또는 네트워크로서 해쉬 함수를 생성하는데에 사용될 수 있다. 예를 들어, 선택된 랜덤 화자 서브 세트를 이용하여 학습 음성 데이터로부터 선택된 랜덤 화자 서브 세트와 연관된 화자 분류들 중에서, 동일한 화자 분류 내에서 거리(distance)는 최소화하고 상이한 화자 분류 내에서의 거리는 최대화하도록 인공신경망 판별 모델이 학습될 수 있으며, 이러한 인공신경망 판별 모델은 도 4에서 설명된 투영 매트릭스 Rl를 대신하여 대상 화자의 음성을 나타내는 특징 벡터를 각 랜덤 서브 화자 세트 중 어느 부분에 속하는지 결정하는 데에 사용될 수 있다.
다른 실시예에 따르면, 선택된 랜덤 화자 서브 세트의 각각을 이용하여 LDA 변환 매트릭스는 미리 결정된 수 만큼 반복하여 생성될 수 있다. 예를 들어, 선택된 랜덤 화자 서브 세트의 각각에 대해 학습 음성 데이터를 이용하여 랜덤 화자 서브 세트와 연관된 화자 분류(class) 사이의 스캐터 매트릭스가 생성될 수 있다. 또한, 선택된 랜덤 화자 서브 세트의 각각에 대해 학습 음성 데이터를 이용하여 랜덤 화자 서브 세트와 연관된 하나의 화자 분류 내의 스캐터 매트릭스가 생성될 수 있다. 그리고 나서, 복수의 화자 사이의 스캐터 매트릭스 및 하나의 화자 분류 내의 스캐터 매트릭스의 비율이 최대화되도록 LDA 변환 매트릭스가 생성될 수 있다.
그리고 나서, 단계 S530에서, 음성 해쉬값 생성 모듈(250)은 추출된 화자 특징 벡터를 해쉬 함수에 입력하여 대상 화자의 음성을 나타내는 특징에 대응하는 해쉬값을 산출하도록 구성될 수 있다. 이렇게 생성된 해쉬값은 컨텐츠 추출 모듈(260)에 전달되어 유사한 해쉬값과 연관된 하나 이상의 컨텐츠를 검색하는데에 사용될 수 있다. 일 실시예에 따르면, 음성 해쉬값 생성 모듈(250)은 추출된 화자 특징 벡터를 학습된 인공신경망 판별 모델에 입력하여, 랜덤 화자 서브 세트와 연관된 복수의 화자 분류에 대응하는 복수의 영역 중에서, 추출된 화자 특징 벡터가 대응하는 적어도 하나의 화자 분류에 대한 영역에 대한 정보를 출력하도록 구성될 수 있다. 그리고 나서, 적어도 하나의 분류에 대한 영역의 각각에 대응하는 값을 이용하여 대상 화자의 음성을 나타내는 특징에 대응하는 해쉬값이 산출될 수 있다. 다른 실시예에 따르면, 선형 판별 변환 함수 중 하나인 LDA 변환 함수를 이용한 해쉬값을 산출하는 방식은 아래 도 6 및 7을 참고하여 상세히 설명된다.
도 6은 선형 판별 분석(LDA, Linear discriminant analysis) 함수를 이용하여 화자의 음성을 나타내는 화자 특징 벡터를 랜덤 화자-변산도 서브 공간에 투영하여 특징 벡터에 대한 해쉬값을 산출하는 방법을 나타내는 흐름도이다. 단계 S610에서, 음성 해쉬값 생성 모듈(250)은 미리 결정된 수 만큼 반복하여 생성된 LDA 변환 매트릭스의 각각을 이용하여 화자 특징 벡터를 LDA 변환 매트릭스에 대응하는 랜덤 화자-변산도 서브공간(RSS, Random Speaker-variability Subspace)에 투영할 수 있다. 여기서, 랜덤 화자-변산도 서브공간은 랜덤 화자 서브 세트와 연관된 변산도 서브공간을 나타낼 수 있다. 이러한 투영 방식은 LSH 기법의 임의 투영 매트릭스 Rl를 대신할 수 있다.
하이퍼파라미터(hyperparameter) Ns에 대하여, 너무 많은 화자가 선택되는 경우 투영 매트릭스 사이에 많은 중복검사가 일어날 수 있다. 이러한 점을 고려하여, Ns는 해쉬 비트의 길이 k보다 많도록 선택되고 k 차수로 투영될 수 있다. 본 실시예에서, 각 해쉬 영역의 크기를 균형있게 유지하기 위하여 아래의 수학식 3이 해쉬 함수로 이용될 수 있다.
[수학식 3]
단계 S620에서, 화자 특징 벡터의 투영 영역의 각각에 대응하는 화자 분류에 대응하는 값이 할당될 수 있다. 여기서, 랜덤 화자 서브 세트 및 랜덤 화자-변산도 서브공간의 각각은 복수의 화자 분류(class)와 연관될 수 있다. 화자 특징 벡터의 투영 영역의 각각이 대응 랜덤 화자-변산도 서브 공간에 포함된 복수의 화자 분류 중 하나의 분류에 속하는 경우, 하나의 화자 분류에 대응하는 값은 화자 특징 벡터의 투영 영역의 각각에 할당될 수 있다.
그리고 나서, 단계 S630에서, 미리 할당된 값을 기초로 화자 특징 벡터에 대응되는 해쉬값이 생성될 수 있다. 이렇게 RSS 공간에 LDA 변환 매트릭스를 이용하여 투영하는 방식을 이용하여 화자의 음성을 검색해본 결과, 이러한 방식은 기존의 화자 음성 선형 서치(linear search)보다 100배 빠르고, LSH보다 7배 빠른 화자의 음성 검색이 제공될 수 있다.
도 7은 본 개시의 일 실시예에 따른 LSH에 대한 LDA 함수를 이용하여 학습 음성 데이터로부터 선택된 랜덤 화자 서브 세트(Spk 1, Spk2, Spk 3)를 랜덤 화자-변산도 서브 공간에 투영하는 방식을 나타내는 예시도이다. 도시된 바와 같이, 위 수학식 3를 이용하여 음성을 나타내는 특징벡터 ω(화자 특징 벡터)를 LSH 기법을 기초로 RSS 투영하는 방식을 이용하여 2차원 벡터가 1차원 벡터로 투영될 수 있다. 위에서 언급된 LDA 기법을 이용하여 r이 산출될 수 있다. 즉, 정확히 동일한 음성이 검색되는 것이 아니라 음성이 달라도 같은 분류가 검색되는 것이기 때문에, 분류가 잘 구분되도록 r이 산출될 수 있다.
도시된 바와 같이, 학습 음성 데이터로부터 선택된 랜덤 화자 서브 세트(Spk1, Spk2, Spk3)는 위에서 언급된 LDA 변환 매트릭스를 통해 산출된 r을 이용하여 초평면(710, 720, 730)에 투영될 수 있다. 초평면(710, 720, 730)은 3개의 해쉬 테이블의 각각과 연관된 초평면을 포함할 수 있다. 랜덤 화자 서브 세트 (Spk1, Spk2, Spk3)는 각 초평면(710, 720, 730)에 투영되었을 때 각 초평면(710, 720, 730)에 각 랜덤 화자 서브 세트를 구분할 수 있는 영역이 결정될 수 있다. 이러한 구성 하에서, 화자 음성 특징 추출 모듈(240)으로부터 수신된 화자의 음성을 나타내는 특징 벡터 ω를 LDA 변환 매트릭스를 통해 산출된 r을 이용하여 각 초평면(710, 720, 730)에 투영될 수 있다. 일 실시예에 따르면, 3개의 화자 분류가 있을 때 2개의 초평면을 선택하고, 화자 특징 벡터 ω는 선택된 2개의 초평면에 대해 LDA 변환 매트릭스를 통해 산출된 r을 이용하여 투영함으로써 해쉬값(비트)이 산출될 수 있다. 예를 들어, 화자 분류 Spk2와 Spk3을 구분할 수 있는 r을 산출한 이후에 r을 이용하여 화자 특징 벡터 ω를 초평면(예를 들어, 730)에 투영했을 때, 화자 분류 2에 가까우면 1로 해쉬 비트가 생성되고, 화자 분류 3에 가까우면 0으로 해쉬 비트가 생성될 수 있다. 이와 유사한 방식으로 2번 화자 분류를 추출하여 r을 산출한 이후에 2bit의 해쉬값을 생성될 수 있다. 이러한 해쉬값은 주어진 3명의 화자를 구분할 수 있다. 도 7에서는 3명의 화자에 대한 LDA 기법이 적용된 예시가 설명되었지만, 4명 이상의 화자인 경우에도 동일 또는 유사한 기법이 적용될 수 있다.
아래 도 8 내지 도 12은 화자 검색 결과에 대한 실험 결과를 보여주는 도면이다. 여기서는, Voxceleb 1 및 2의 화자 음성 데이터 세트를 이용하여 화자 검색 결과가 평가되었다. Voxceleb 1 및 2는 대용량의 화자 식별을 위하여 자동적으로 수집된 오디오 및 비디오 데이터를 포함할 수 있다. 예를 들어, Voxceleb 1 및 2는 7,365 화자로부터의 1,281,352의 음성 컨텐츠(예: utterances)를 포함할 수 있다. 각 음성 컨텐츠는 오디오 또는 비디오 클립으로부터 추출될 수 있으며, 각 클립은 10 내지 50 음성 컨텐츠를 포함할 수 있다.
도 8은 일 실시예에 따른 LSH, 랜덤샘플링 LDA 기법 및 제안된 LDA 기법(RSS를 이용한 LDA 기법)에 따른 동일 화자 사이의 평균 해밍 거리(Hamming distance) 및 상이한 화자 사이의 평균 해밍 거리에 따른 결과값을 보여주는 그래프를 나타내는 도면이다. 여기서, 해밍 거리는 초평면 k의 수가 증가함에 따라 코사인 거리(cosine distance)에 근사화되거나 가까워질 수 있다. 이러한 해밍 거리와 코사인 거리는 아래 수학식 4를 이용하여 표현될 수 있다.
[수학식 4]
투영 매트릭스가 원 거리(original distance)를 효과적으로 근사화한 경우, 동일한 화자에 대한 화자 표시, 즉 화자 특징 벡터는 동일한 또는 가까운 영역(bin, bucket 등)에 포함될 가능성이 높으며, 이에 따라 원 거리를 근사화하기 위하여 적은 수의 해쉬 함수가 이용될 수 있다. 이는 동일한 화자에 대한 화자 표시의 해밍 거리가 상이한 화자에 대한 화자 표시의 해밍 거리보다 가깝다는 것을 의미할 수 있다. 이러한 점을 고려하여 새로운 투영 매트릭스의 근사 능력은 동일한 화자 및 상이한 화자의 평균 해밍 거리에 의해 수치화될 수 있다.
도 8에서는 LSH, 랜덤샘플링 LDA 기법 및 제안된 LDA 기법(RSS를 이용한 LDA 기법)에 따른 동일 화자의 평균 해밍(Hamming) 거리를 다른 화자의 해밍 거리로 나눈 값들을 보여준다. 즉, 도 8에서는 세 가지 기법이 초평면의 비트 수에 따라 동일한 화자가 동일하게 인식되고 다른 화자와의 사이에서의 구분이 얼마나 이루어졌는지 나타내고 있으며, 더 낮은 값이 더 화자 검색이 잘 이루어지고 있음을 나타낸다. 도 8에서, 제안된 LDA 기법의 결과값이 다른 두 기법에 비해 동일 화자 사이의 거리가 가깝고, 다른 화자 사이의 거리가 먼 거리임을 나타낸다. 즉, 제안된 LDA 기법의 음성 검색 성능이 다른 두 기법보다 우수할 수 있다.
도 9 및 도 10은 다양한 해쉬 기법에 대해 초평면 및 해쉬 테이블의 수에 따른 결과값을 보여주는 그래프를 나타내는 도면이다. 여기서, 다양한 해쉬 기법은 i-vector를 이용한 LSH 기법, i-vector를 이용한 랜덤샘플링 LDA 기법, 제안된 기법 중 하나인 i-vector를 이용한 LDA를 통한 RSS 기법, x-vector를 이용한 LSH 기법, x-vector를 이용한 랜덤샘플링 LDA 기법, 제안된 기법 중 하나인 x- vector를 이용한 LDA를 통한 RSS 기법을 포함할 수 있다. 도 9 및 도 10은 각 해쉬 기법에 대해 초평면의 수에 따른 평균 에러 비율(EER, Equal Error Rate)을 보여준다. 도시된 바와 같이, x-vector를 이용한 LDA를 통한 RSS 기법이 가장 좋은 ERR의 결과값을 가진다는 것을 보여준다. 즉, x-vector를 이용한 LDA를 통한 RSS 기법이 i-vector를 이용한 LDA를 통한 RSS 기법보다 더 좋은 결과값을 보여준다. 이는 i-vector 프레임 워크에서 i-vector는 가우시안 분포에 분포되었음에 반하여 x-vector를 추출하는 DNN이 원 핫 화자 라벨을 이용하여 더 효과적으로 학습되었다는 점에 기인될 수 있다. 이러한 결과를 비추어볼 때, x-vector 뿐만 아니라 DNN으로부터 추출된 임의의 화자 벡터에 LDA를 통한 RSS 기법이 적용되었을 때, 동일 화자 검색에 대한 EER은 더 향상된 결과값이 산출될 수 있다.
도 11 및 12는 다양한 해쉬 기법에 따른 검색 속도 및 성능 사이의 트레이드 오프(trade-off)를 보여주는 그래프를 나타내는 도면이다. 이 실험은 파라미터 k와 L을 다양하게 설정함으로써 실행되었으며, 속도 및 성능 축에 따른 결과값이 표시되었다. 화자 검색 및 식별 동작에서, 제안된 기법(i-vector를 이용한 LDA를 통한 RSS 기법)이 다른 기법보다 엄청난 성능 향상을 보여준다. 예를 들어, 화자 음성 선형 서치와 비교하여 95프로 이상의 화자 식별 성능을 유지하면서 속도를 향상시키는 데 있어서, 제안된 기법은 화자 검색 선형 서치보다 약 100배 이상의 속도 향상을 보여주었으며, KSH보다 7배 이상의 속도 향상을 달성하였다. 참고로, 도 9 내지 11의 EER은 선형 서치와의 비교 값이 아니라 절대 값이다.
일반적으로, 본 명세서에 설명된 대상 화자 음성과 동일한 음성을 가진 컨텐츠를 검색하는 시스템 및/또는 장치는, 무선 전화기, 셀룰러 전화기, 랩탑 컴퓨터, 무선 멀티미디어 디바이스, 무선 통신 PC (personal computer) 카드, PDA, 외부 모뎀이나 내부 모뎀, 무선 채널을 통해 통신하는 디바이스 등과 같은 다양한 타입들의 디바이스들을 나타낼 수도 있다. 디바이스는, 액세스 단말기 (access terminal; AT), 액세스 유닛, 가입자 유닛, 이동국, 모바일 디바이스, 모바일 유닛, 모바일 전화기, 모바일, 원격국, 원격 단말, 원격 유닛, 유저 디바이스, 유저 장비 (user equipment), 핸드헬드 디바이스 등과 같은 다양한 이름들을 가질 수도 있다. 본 명세서에 설명된 임의의 디바이스는 명령들 및 데이터를 저장하기 위한 메모리, 뿐만 아니라 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합들을 가질 수도 있다.
본 명세서에 기술된 기법들은 다양한 수단에 의해 구현될 수도 있다. 예를 들어, 이러한 기법들은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수도 있다. 본 명세서의 개시와 연계하여 설명된 다양한 예시적인 논리적 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양자의 조합들로 구현될 수도 있음을 당업자들은 더 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호교환성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들이 그들의 기능성의 관점에서 일반적으로 위에서 설명되었다. 그러한 기능이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는 지의 여부는, 특정 애플리케이션 및 전체 시스템에 부과되는 설계 제약들에 따라 달라진다. 당업자들은 각각의 특정 애플리케이션을 위해 다양한 방식들로 설명된 기능을 구현할 수도 있으나, 그러한 구현 결정들은 본 개시의 범위로부터 벗어나게 하는 것으로 해석되어서는 안된다.
하드웨어 구현에서, 기법들을 수행하는 데 이용되는 프로세싱 유닛들은, 하나 이상의 ASIC들, DSP들, 디지털 신호 프로세싱 디바이스들 (digital signal processing devices; DSPD들), 프로그램가능 논리 디바이스들 (programmable logic devices; PLD들), 필드 프로그램가능 게이트 어레이들 (field programmable gate arrays; FPGA들), 프로세서들, 제어기들, 마이크로제어기들, 마이크로프로세서들, 전자 디바이스들, 본 명세서에 설명된 기능들을 수행하도록 설계된 다른 전자 유닛들, 컴퓨터, 또는 이들의 조합 내에서 구현될 수도 있다.
따라서, 본 명세서의 개시와 연계하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 및 회로들은 범용 프로세서, DSP, ASIC, FPGA나 다른 프로그램 가능 논리 디바이스, 이산 게이트나 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본 명세서에 설명된 기능들을 수행하도록 설계된 것들의 임의의 조합으로 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안에서, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예를 들면, DSP와 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 연계한 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성의 조합으로써 구현될 수도 있다.
펌웨어 및/또는 소프트웨어 구현에 있어서, 기법들은 랜덤 액세스 메모리 (random access memory; RAM), 판독 전용 메모리 (read-only memory; ROM), 불휘발성 RAM (non-volatile random access memory; NVRAM), PROM (programmable read-only memory), EPROM (erasable programmable read-only memory), EEPROM (electrically erasable PROM), 플래시 메모리, 컴팩트 디스크 (compact disc; CD), 자기 또는 광학 데이터 스토리지 디바이스 등과 같은 컴퓨터 판독가능 매체 상에 저장된 명령들로써 구현될 수도 있다. 명령들은 하나 이상의 프로세서들에 의해 실행 가능할 수도 있고, 프로세서(들)로 하여금 본 명세서에 설명된 기능의 특정 양태들을 수행하게 할 수도 있다.
소프트웨어로 구현되면, 상기 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독 가능한 매체 상에 저장되거나 또는 컴퓨터 판독 가능한 매체를 통해 전송될 수도 있다. 컴퓨터 판독가능 매체들은 한 장소에서 다른 장소로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하여 컴퓨터 저장 매체들 및 통신 매체들 양자를 포함한다. 저장 매체들은 컴퓨터에 의해 액세스될 수 있는 임의의 이용 가능한 매체들일 수도 있다. 비제한적인 예로서, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스들, 또는 소망의 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 이송 또는 저장하기 위해 사용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독가능 매체로 적절히 칭해진다.
예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선 (DSL), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들을 사용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 전송되면, 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들은 매체의 정의 내에 포함된다. 본 명세서에서 사용된 디스크 (disk) 와 디스크 (disc)는, CD, 레이저 디스크, 광 디스크, DVD (digital versatile disc), 플로피디스크, 및 블루레이 디스크를 포함하며, 여기서 디스크들 (disks) 은 보통 자기적으로 데이터를 재생하고, 반면 디스크들 (discs) 은 레이저를 이용하여 광학적으로 데이터를 재생한다. 위의 조합들도 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.
소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 이동식 디스크, CD-ROM, 또는 공지된 임의의 다른 형태의 저장 매체 내에 상주할 수도 있다. 예시적인 저장 매체는, 프로세가 저장 매체로부터 정보를 판독하거나 저장 매체에 정보를 기록할 수 있도록, 프로세서에 커플링 될 수 있다. 대안으로, 저장 매체는 프로세서에 통합될 수도 있다. 프로세서와 저장 매체는 ASIC 내에 존재할 수도 있다. ASIC은 유저 단말 내에 존재할 수도 있다. 대안으로, 프로세서와 저장 매체는 유저 단말에서 개별 컴포넌트들로써 존재할 수도 있다.
본 개시의 앞선 설명은 당업자들이 본 개시를 행하거나 이용하는 것을 가능하게 하기 위해 제공된다. 본 개시의 다양한 수정예들이 당업자들에게 쉽게 자명할 것이고, 본 명세서에 정의된 일반적인 원리들은 본 개시의 취지 또는 범위를 벗어나지 않으면서 다양한 변형예들에 적용될 수도 있다. 따라서, 본 개시는 본 명세서에 설명된 예들에 제한되도록 의도된 것이 아니고, 본 명세서에 개시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위가 부여되도록 의도된다.
비록 예시적인 구현예들이 하나 이상의 독립형 컴퓨터 시스템의 맥락에서 현재 개시된 주제의 양태들을 활용하는 것을 언급할 수도 있으나, 본 주제는 그렇게 제한되지 않고, 오히려 네트워크나 분산 컴퓨팅 환경과 같은 임의의 컴퓨팅 환경과 연계하여 구현될 수도 있다. 또 나아가, 현재 개시된 주제의 양상들은 복수의 프로세싱 칩들이나 디바이스들에서 또는 그들에 걸쳐 구현될 수도 있고, 스토리지는 복수의 디바이스들에 걸쳐 유사하게 영향을 받게 될 수도 있다. 이러한 디바이스들은 PC들, 네트워크 서버들, 및 핸드헬드 디바이스들을 포함할 수도 있다.
비록 본 주제가 구조적 특징들 및/또는 방법론적 작용들에 특정한 언어로 설명되었으나, 첨부된 청구항들에서 정의된 주제가 위에서 설명된 특정 특징들 또는 작용들로 반드시 제한되는 것은 아님이 이해될 것이다. 오히려, 위에서 설명된 특정 특징들 및 작용들은 청구항들을 구현하는 예시적인 형태로서 설명된다.
이 명세서에서 언급된 방법은 특정 실시예들을 통하여 설명되었지만, 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽힐 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 실시예들을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본 명세서에서는 본 개시가 일부 실시예들과 관련하여 설명되었지만, 본 발명이 속하는 기술분야의 통상의 기술자가 이해할 수 있는 본 개시의 범위를 벗어나지 않는 범위에서 다양한 변형 및 변경이 이루어질 수 있다는 점을 알아야 할 것이다. 또한, 그러한 변형 및 변경은 본 명세서에 첨부된 특허청구의 범위 내에 속하는 것으로 생각되어야 한다.
Claims (13)
- 대상 화자의 음성과 동일한 음성을 포함한 컨텐츠를 검색하는 방법에 있어서,대상 화자의 음성으로 생성된 사운드(sound)를 수신하는 단계;상기 사운드로부터 상기 대상 화자의 음성을 나타내는 특징을 추출하는 단계;해쉬 함수를 이용하여 상기 대상 화자의 음성을 나타내는 특징에 대응하는 해쉬값을 산출하는 단계; 및네트워크 상에서 검색 가능한 복수의 컨텐츠 중에서, 상기 산출된 해쉬값과 유사한 해쉬값과 연관된 컨텐츠를 검색하는 단계를 포함하는 컨텐츠 검색 방법.
- 제1항에 있어서,상기 사운드로부터 상기 대상 화자의 음성을 나타내는 특징을 추출하는 단계는, 상기 사운드로부터 상기 대상 화자의 음성에 대응되는 화자 특징 벡터를 추출하는 단계를 포함하는 컨텐츠 검색 방법.
- 제2항에 있어서,상기 해쉬 함수를 이용하여 상기 대상 화자의 음성을 나타내는 특징에 대응하는 해쉬값을 산출하는 단계는,학습 음성 데이터로부터 랜덤 화자 서브 세트를 미리 결정된 수 만큼 반복하여 선택하는 단계 - 상기 랜덤 화자 서브 세트는 복수의 화자 분류(class)와 연관됨 -;상기 선택된 랜덤 화자 서브 세트를 기초로 판별 변환 함수(discriminative transform function)를 생성하는 단계 - 상기 해쉬 함수는 상기 생성된 판별 변환 함수를 이용하여 생성됨 -;상기 추출된 화자 특징 벡터를 상기 해쉬 함수에 입력하여 상기 대상 화자의 음성을 나타내는 특징에 대응하는 해쉬값을 산출하는 단계를 포함하는 컨텐츠 검색 방법.
- 제3항에 있어서,상기 선택된 랜덤 화자 서브 세트를 기초로 판별 변환 함수를 생성하는 단계는, 상기 선택된 랜덤 화자 서브 세트를 이용하여 상기 랜덤 화자 서브 세트에 연관된 복수의 화자 분류에 대응하는 영역이 판별되도록 인공신경망 판별 모델을 학습하는 단계를 포함하는, 컨텐츠 검색 방법.
- 제4항에 있어서,상기 인공신경망 판별 모델을 학습하는 단계는, 상기 선택된 랜덤 화자 서브 세트를 이용하여 상기 선택된 랜덤 화자 서브 세트에 연관된 복수의 화자 분류 중 하나의 화자 분류 내의 특징 사이의 거리는 최소화하고 상기 복수의 화자 분류 내의 특징 사이의 거리는 최대화하도록 상기 인공신경망 판별 모델을 학습하는 단계를 포함하는.컨텐츠 검색 방법.
- 제4항에 있어서,상기 추출된 화자 특징 벡터를 상기 해쉬 함수에 입력하여 상기 대상 화자의 음성을 나타내는 특징에 대응하는 해쉬값을 산출하는 단계는,상기 추출된 화자 특징 벡터를 상기 학습된 인공신경망 판별 모델에 입력하여, 상기 복수의 화자 분류에 대응하는 복수의 영역 중에서, 상기 추출된 화자 특징 벡터가 대응하는 적어도 하나의 화자 분류에 대한 영역에 대한 정보를 출력하는 단계; 및상기 적어도 하나의 화자 분류에 대한 영역의 각각에 대응하는 값을 이용하여 상기 대상 화자의 음성을 나타내는 특징에 대응하는 해쉬값을 생성하는 단계를 포함하는, 컨텐츠 검색 방법.
- 제3항에 있어서,상기 선택된 랜덤 화자 서브 세트를 기초로 판별 변환 함수를 생성하는 단계는, 상기 선택된 랜덤 화자 서브 세트의 각각을 이용하여 LDA(Linear Discriminant Analysis) 변환 매트릭스를 상기 미리 결정된 수 만큼 반복하여 생성하는 단계를 포함하는,컨텐츠 검색 방법.
- 제7항에 있어서,상기 추출된 화자 특징 벡터를 상기 해쉬 함수에 입력하여 상기 대상 화자의 음성을 나타내는 특징에 대응하는 해쉬값을 산출하는 단계는,상기 생성된 LDA 변환 매트릭스의 각각을 이용하여 상기 추출된 화자 특징 벡터를 상기 생성된 LDA 변환 매트릭스의 각각에 대응되는 랜덤 화자-변산도 서브공간(Random Speaker-variability Subspace)에 투영하는 단계;상기 추출된 화자 특징 벡터의 투영 영역의 각각이 상기 랜덤 화자-변산도 서브 공간에 연관된 복수의 화자 분류 중 하나의 화자 분류에 속하는 경우, 상기 하나의 화자 분류에 대응되는 값을 상기 추출된 화자 특징 벡터의 투영 영역의 각각에 할당하는 단계; 및상기 할당된 값들을 기초로 상기 추출된 화자 특징 벡터에 대응되는 해쉬값을 생성하는 단계를 포함하는, 컨텐츠 검색 방법.
- 제7항에 있어서,상기 선택된 랜덤 화자 서브 세트의 각각을 이용하여 LDA 변환 매트릭스를 상기 미리 결정된 수만큼 반복하여 생성하는 단계는,상기 선택된 랜덤 화자 서브 세트의 각각에 대해,상기 학습 음성 데이터를 이용하여 상기 랜덤 화자 서브 세트와 연관된 복수의 화자 분류 사이의 스캐터 매트릭스를 생성하는 단계;상기 학습 음성 데이터를 이용하여 상기 랜덤 화자 서브 세트와 연관된 하나의 화자 분류 내의 스캐터 매트릭스를 생성하는 단계; 및상기 복수의 화자 분류 사이의 스캐터 매트릭스 및 상기 하나의 화자 분류 내의 스캐너 매트릭스의 비율(ratio)이 최대화되도록 상기 LDA 변환 매트릭스를 생성하는 단계를 포함하는 컨텐츠 검색 방법.
- 제3항에 있어서,상기 미리 결정된 수는 미리 결정된 해쉬 테이블의 총 수를 포함하는, 컨텐츠 검색 방법.
- 제1항에 있어서,상기 네트워크 상에서 검색 가능한 복수의 컨텐츠의 각각에 포함된 하나 이상의 화자의 음성을 나타내는 특징을 추출하는 단계; 및상기 해쉬 함수를 이용하여 상기 추출된 하나 이상의 화자의 음성을 나타내는 특징의 각각에 대응하는 해쉬값을 산출하는 단계를 더 포함하는, 컨텐츠 검색 방법.
- 제11항에 있어서, 상기 산출된 해쉬값과 유사한 해쉬값과 연관된 컨텐츠를 검색하는 단계는,상기 네트워크 상에서 검색 가능한 복수의 컨텐츠의 각각에 대해 산출된 복수의 해쉬값의 각각과 상기 대상 화자와 연관된 해쉬값을 비교하는 단계; 및상기 대상 화자의 음성에 대한 해쉬값과 유사한 해쉬값과 연관된 하나 이상의 컨텐츠가 존재한다면, 상기 유사한 해쉬값과 연관된 하나 이상의 컨텐츠를 출력하는 단계를 포함하는, 컨텐츠 검색 방법.
- 제1항의 대상 화자 음성과 동일한 음성을 포함한 컨텐츠를 검색하는 방법에 따른 각각의 단계를 수행하는 명령어를 포함하는 프로그램이 기록된, 컴퓨터 판독가능 저장매체.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19884526.5A EP3882788A4 (en) | 2018-11-14 | 2019-11-14 | METHOD OF SEARCHING FOR CONTENT WITH THE SAME VOICE AS A TARGET SPEAKER'S VOICE AND DEVICE FOR IMPLEMENTING THE SAME |
US17/319,566 US11664015B2 (en) | 2018-11-14 | 2021-05-13 | Method for searching for contents having same voice as voice of target speaker, and apparatus for executing same |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0139831 | 2018-11-14 | ||
KR20180139831 | 2018-11-14 | ||
KR20180145732 | 2018-11-22 | ||
KR10-2018-0145732 | 2018-11-22 | ||
KR1020190146098A KR102275406B1 (ko) | 2018-11-14 | 2019-11-14 | 대상 화자 음성과 동일한 음성을 가진 컨텐츠를 검색하는 방법 및 이를 실행하기 위한 장치 |
KR10-2019-0146098 | 2019-11-14 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/319,566 Continuation US11664015B2 (en) | 2018-11-14 | 2021-05-13 | Method for searching for contents having same voice as voice of target speaker, and apparatus for executing same |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020101411A1 true WO2020101411A1 (ko) | 2020-05-22 |
Family
ID=70731834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2019/015589 WO2020101411A1 (ko) | 2018-11-14 | 2019-11-14 | 대상 화자 음성과 동일한 음성을 가진 컨텐츠를 검색하는 방법 및 이를 실행하기 위한 장치 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2020101411A1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070093576A (ko) * | 2006-03-14 | 2007-09-19 | 주식회사 코난테크놀로지 | 방송 모니터링을 통한 사용자 선호 방송 서비스 제공시스템 및 방법 |
KR20110027362A (ko) * | 2009-09-10 | 2011-03-16 | 한국전자통신연구원 | 음성 인터페이스를 이용한 iptv 시스템 및 서비스 방법 |
KR101376478B1 (ko) * | 2012-05-09 | 2014-03-19 | (주)마이오디 | 허밍 기반 음원 검색환경 구성방법과 이를 위한 음원 검색장치 및 음원 자동 재생을 위한 음원 검색시스템 |
WO2016122016A1 (ko) * | 2015-01-28 | 2016-08-04 | 주식회사 솔트룩스 | 사용자 관심 콘텐츠 제공 장치 |
-
2019
- 2019-11-14 WO PCT/KR2019/015589 patent/WO2020101411A1/ko unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070093576A (ko) * | 2006-03-14 | 2007-09-19 | 주식회사 코난테크놀로지 | 방송 모니터링을 통한 사용자 선호 방송 서비스 제공시스템 및 방법 |
KR20110027362A (ko) * | 2009-09-10 | 2011-03-16 | 한국전자통신연구원 | 음성 인터페이스를 이용한 iptv 시스템 및 서비스 방법 |
KR101376478B1 (ko) * | 2012-05-09 | 2014-03-19 | (주)마이오디 | 허밍 기반 음원 검색환경 구성방법과 이를 위한 음원 검색장치 및 음원 자동 재생을 위한 음원 검색시스템 |
WO2016122016A1 (ko) * | 2015-01-28 | 2016-08-04 | 주식회사 솔트룩스 | 사용자 관심 콘텐츠 제공 장치 |
Non-Patent Citations (2)
Title |
---|
[KAKAO AI REPORT] KIM MYUNG-JAE | KAKAO VOICE PROCESSING PART: "[Kakao AI Report] How Kakao Mini Recognizes Voice", 31 October 2017 (2017-10-31), XP009527797, Retrieved from the Internet <URL:https://brunch.co.kr/@kakao-it/135> [retrieved on 20200207] * |
See also references of EP3882788A4 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Cheng et al. | Look, listen, and attend: Co-attention network for self-supervised audio-visual representation learning | |
US11830505B2 (en) | Identification of fake audio content | |
Li et al. | Query by Video: Cross-modal Music Retrieval. | |
WO2020139058A1 (en) | Cross-device voiceprint recognition | |
CN112084337A (zh) | 文本分类模型的训练方法、文本分类方法及设备 | |
US20190065492A1 (en) | Zero-shot event detection using semantic embedding | |
KR102275406B1 (ko) | 대상 화자 음성과 동일한 음성을 가진 컨텐츠를 검색하는 방법 및 이를 실행하기 위한 장치 | |
TW201717062A (zh) | 基於多模態融合之智能高容錯視頻識別系統及其識別方法 | |
WO2021029523A1 (en) | Techniques for learning effective musical features for generative and retrieval-based applications | |
WO2017138766A1 (ko) | 하이브리드 기반의 영상 클러스터링 방법 및 이를 운용하는 서버 | |
US11457033B2 (en) | Rapid model retraining for a new attack vector | |
WO2022060066A1 (ko) | 전자 장치, 컨텐츠 검색 시스템 및 검색 방법 | |
Morfi et al. | Deep perceptual embeddings for unlabelled animal sound events | |
WO2020135756A1 (zh) | 视频段的提取方法、装置、设备及计算机可读存储介质 | |
WO2021118050A1 (ko) | 하이라이트 영상 자동 편집을 위한 컴퓨터 프로그램 | |
Hussein et al. | Unified embedding and metric learning for zero-exemplar event detection | |
CN113393840B (zh) | 一种基于语音识别的移动终端控制系统及方法 | |
Hebbar et al. | A dataset for audio-visual sound event detection in movies | |
WO2020101411A1 (ko) | 대상 화자 음성과 동일한 음성을 가진 컨텐츠를 검색하는 방법 및 이를 실행하기 위한 장치 | |
Wang et al. | A novel distance learning for elastic cross-modal audio-visual matching | |
WO2023000782A1 (zh) | 获取视频热点的方法、装置、可读介质和电子设备 | |
CN116343771A (zh) | 一种基于知识图谱的音乐点播语音指令识别方法、装置 | |
CN111177419A (zh) | 数字学习内容的标注检索方法 | |
CN112287134B (zh) | 检索模型的训练和识别方法、电子设备及存储介质 | |
CN113821681A (zh) | 视频标签生成方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19884526 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2019884526 Country of ref document: EP Effective date: 20210614 |