# US 7,613,579 B2 · Generalized harmonicity indicator

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,613,579 B2
- Document ID: US7613579B2
- Status: Granted
- Kind: B2
- Application number: 11/998,990
- Filed: 2007-11-08
- Published: 2008-06-19
- Granted: 2009-11-03
- Earliest claimed: 2006-12-15
- Assignees: The United States of America as represented by the Secretary of the Air Force
- Inventors: Darren Haddad; Andrew J. Noga
- Web page: https://patentgrep.com/patent/US7613579B2

## CPC

- G10L 25/90: Pitch determination of speech signals
- G10L: SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING

## Abstract

The invention disclosed herein provides a method and apparatus for analyzing periodic signals so as to determine the degree of harmonicity in real time. Harmonicity estimates are generated for each segment of a signal without the need to process subsequent segments. Harmonicity estimates can be generated in the absence of a fundamental frequency component. The invention has utility in the audio/speech domain for automated speaker identification.

## Claims

### Claim 1

An apparatus for analyzing the harmonicity of periodic signals, comprising:
a means for dividing said signal into consecutive segments;
a means for calculating a super-resolution decomposition of said segments into frequency values, frequency decay rates, and initial amplitudes;
a means for pruning said list of frequencies so as to produce a list vector of frequency values {right arrow over (L)} having n elements;
a frequency sorter for ordering the elements of said list vector {right arrow over (L)} so as to produce an ordered frequency list vector {right arrow over (F)};
a column duplicator for forming a matrix F, having as each column said frequency list vector {right arrow over (F)};
a candidate generator for forming a matrix of candidate fundamentals D from said matrix F and said frequency list vector {right arrow over (F)} according to D={right arrow over (F)}−FT;
a pre-validator for forming a candidate fundamental list vector {right arrow over (D)} whose m elements are chosen from the positive elements of D that are greater than a minimum value;
a group averager for producing both a vector of averaged groupings of fundamentals, {right arrow over (G)}, and an associated count vector, {right arrow over (C)}, from said fundamental list vector {right arrow over (D)};
an average fundamental selector for processing said vector of averaged groupings of fundamentals, {right arrow over (G)}, and said associated count vector, {right arrow over (C)} so as to produce a count threshold c and an initial fundamental estimate α0;
a sub-harmonic searcher for producing a pre-refined fundamental estimate, φ0, by computing a sub-harmonic candidate vector {right arrow over (S)} from said initial fundamental estimate α0 and said frequency list vector {right arrow over (F)} according to {right arrow over (S)}={right arrow over (F)}−0.5α0{right arrow over (1)};
a fundamental refiner for producing a refined fundamental estimate, ƒ0, by computing a first error vector {right arrow over (E)}−1, according to {right arrow over (E)}−1={right arrow over (F)}−ƒ0 (−1)·{right arrow over (1)} and by computing a second error vector {right arrow over (E)} according to {right arrow over (E)}={right arrow over (F)}−φk1; and
a harmonic refiner for producing a refined harmonic estimate, hk, by recomputing said first error vector {right arrow over (E)}−1 according to {right arrow over (E)}−1={right arrow over (F)}−hk(−1)·{right arrow over (1)} and by recomputing said second error vector {right arrow over (E)} according to {right arrow over (E)}={right arrow over (F)}−φk{right arrow over (1)},
where k=kƒ0, and where the integer k is greater than 1; and
where hk(−1) is the refined harmonic estimate from the previous signal segment.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein said pre-validator further comprising means for
choosing the positive elements of D that are greater than ƒmin>0; and
arranging the elements of vector {right arrow over (D)} ascending order so as to result in m≦0.5n2−0.5n.

### Claim 3 (depends on 1)

The apparatus of claim 1, wherein said group averager further comprising means for
inspecting the elements of said fundamental list vector {right arrow over (D)};
beginning with the first element of said fundamental list vector {right arrow over (D)}, forming a difference between the current element and the previous element;
determining whether said difference is less than a fraction p1 times the current element;
IF said difference is less than said fraction p1 times said current element, THEN
grouping said current element with said prior element;
OTHERWISE
starting a new group with said current element.

### Claim 4 (depends on 3)

The apparatus of claim 3, where, in said group averager, p1 equals 0.1.

### Claim 5 (depends on 1)

The apparatus of claim 1, wherein said average fundamental selector further comprising means for
determining whether any elements remain in said averaged groupings of fundamentals vector, {right arrow over (G)};
IF no further elements remain, THEN assigning to said averaged groupings of fundamentals vector, {right arrow over (G)}, a single element equal to ƒmin, where ƒmin is chosen value for which the positive elements of a vector D are greater than; assigning to said associated count vector, {right arrow over (C)}, a single element equal to a count threshold, ct;
OTHERWISE
resuming said processing of said vector G vector, {right arrow over (C)}.

### Claim 6 (depends on 1)

The apparatus of claim 1, wherein said sub-harmonic searcher further comprises means for
determining whether 0.5α0 is greater than ƒmin;
IF 0.5α0 is greater than ƒmin, THEN
reducing α0 by a factor of 0.5;
OTHERWISE
resuming producing a pre-refined fundamental estimate.

### Claim 7 (depends on 1)

The apparatus of claim 1, wherein said fundamental refiner further comprising means for
determining whether the minimum of the absolute values of the elements of said vector {right arrow over (E)} is less than the minimum of the absolute values of the elements of said vector {right arrow over (E)}−1 AND also less than x, where
x=p3ƒ0(−1);
p3 is a fractional parameter; and
ƒ0(−1) is the refined fundamental estimate from a previous signal segment;
IF the absolute values of the elements of said vector {right arrow over (E)} is less than the minimum of the absolute values of the elements of said vector {right arrow over (E)}−1 AND also less than x, THEN
associating the element ƒ0 of said vector {right arrow over (F)} with the minimum of the absolute values of the elements of said vector {right arrow over (E)};
OTHERWISE
setting ƒ0=φ0.

### Claim 8 (depends on 1)

The apparatus of claim 1, wherein said harmonic refiner further comprises means for
determining whether the minimum of the absolute values of the elements of said vector {right arrow over (E)} is less than the minimum of the absolute values of the elements of said vector {right arrow over (E)}−1, AND also less than x, where
x=p3hk(−1);
p3 is a fractional parameter; and
hk(−1) is the refined harmonic estimate from a previous signal segment;
IF the minimum of the absolute values of the elements of said vector {right arrow over (E)} is less than the minimum of the absolute values of the elements of said vector {right arrow over (E)}−1, AND also less than x, THEN
associating element hk of said vector {right arrow over (F)} with the minimum of the absolute values of the elements of said vector {right arrow over (E)};
OTHERWISE
setting hk=φk.

### Claim 9

A computer implementable method for analyzing the harmonicity of periodic signals, said method comprises a software program having a plurality of computer executable instructions which, when executed, causes a computer to perform the steps comprising:
dividing said signal into consecutive segments;
calculating a super-resolution decomposition of said segments into frequency values, frequency decay rates, and initial amplitudes;
pruning said list of frequencies so as to produce a list vector of frequency values {right arrow over (L)} having n elements;
ordering the elements of said list vector L so as to produce an ordered frequency list vector {right arrow over (F)};
forming a matrix {right arrow over (F)}, having as each column said frequency list vector {right arrow over (F)};
forming a matrix of candidate fundamentals D from said matrix F and said frequency list vector {right arrow over (F)} according to D={right arrow over (F)}−FT;
forming a candidate fundamental list vector {right arrow over (D)} whose m elements are chosen from the positive elements of D that are greater than a minimum value;
producing both a vector of averaged groupings of fundamentals, {right arrow over (G)}, and an associated count vector, {right arrow over (C)}, from said fundamental list vector {right arrow over (D)};
processing said vector of averaged groupings of fundamentals, {right arrow over (G)}, and said associated count vector, {right arrow over (C)} so as to produce a count threshold c and an initial fundamental estimate α0;
producing a pre-refined fundamental estimate, φ0, by computing a sub-harmonic candidate vector {right arrow over (S)} from said initial fundamental estimate α0 and said frequency list vector {right arrow over (F)} according to {right arrow over (S)}={right arrow over (F)}−0.5α01;
producing a refined fundamental estimate, ƒ0, by computing a first error vector {right arrow over (E)}−1, according to {right arrow over (E)}−1={right arrow over (F)}−ƒ0(−1)·{right arrow over (1)} and by computing a second error vector {right arrow over (E)} according to {right arrow over (E)}={right arrow over (F)}−φk{right arrow over (1)}; and
producing a refined harmonic estimate, hk, by recomputing said first error vector {right arrow over (E)}, according to {right arrow over (E)}−1={right arrow over (F)}−hk(−1)·{right arrow over (1)} and by recomputing said second error vector {right arrow over (E)} according to φk={right arrow over (F)}−φk{right arrow over (1)},
where φk=kƒ0, and where the integer k is greater than 1; and
where hk(−1) is the refined harmonic estimate from the previous signal segment.

### Claim 10 (depends on 9)

The computer implementable method of claim 9, wherein said step of forming a candidate fundamental list vector further comprises the step of
choosing the positive elements of D that are greater than ƒmin>0; and
arranging the elements of vector {right arrow over (D)} ascending order so as to result in m≦0.5n2−0.5n.

### Claim 11 (depends on 9)

The computer implementable method of claim 9, wherein said first step of producing both a vector of averaged groupings of fundamentals, {right arrow over (G)}, and an associated count vector, {right arrow over (C )}further comprises the steps of
inspecting the elements of said fundamental list vector {right arrow over (D)};
beginning with the first element of said fundamental list vector {right arrow over (D)}, forming a difference between the current element and the previous element;
determining whether said difference is less than a fraction p1 times the current element;
IF said difference is less than said fraction p1 times said current element, THEN
grouping said current element with said prior element;
OTHERWISE
starting a new group with said current element.

### Claim 12 (depends on 11)

The computer implementable method of claim 11 where, in said step of producing both a vector of averaged groupings of fundamentals, {right arrow over (G)}, and an associated count vector, {right arrow over (C)}, p1 equals 0.1.

### Claim 13 (depends on 9)

The computer implementable method of claim 9, wherein said step of processing said vector of averaged groupings of fundamentals, {right arrow over (G)}, and said associated count vector, {right arrow over (C )}further comprises the steps of
determining whether any elements remain in said averaged groupings of fundamentals vector, {right arrow over (G)};
IF no further elements remain, THEN
assigning to said averaged groupings of fundamentals vector, {right arrow over (G)}, a single element equal to ƒmin,where ƒmin is a chosen value for which the positive elements of a vector D are greater than; assigning to said associated count vector, {right arrow over (C)}, a single element equal to a count threshold, ct;
OTHERWISE
resuming said processing of said vector G vector, {right arrow over (C)}.

### Claim 14 (depends on 9)

The computer implementable method of claim 9, wherein said step of producing a pre-refined fundamental estimate φ0 further comprises the steps of
determining whether 0.5α0 is greater than ƒmin;
IF 0.5α0 is greater than ƒmin, THEN
reducing α0 by a factor of 0.5;
OTHERWISE
resuming producing a pre-refined fundamental estimate.

### Claim 15 (depends on 9)

The computer implementable method of claim 9, wherein said step of producing a refined fundamental estimate ƒ0 further comprises the steps of
determining whether the minimum of the absolute values of the elements of said vector {right arrow over (E)} is less than the minimum of the absolute values of the elements of said vector {right arrow over (E)}−1, AND also less than x, where
x=p3ƒ0(−1);
p3 is a fractional parameter; and
hk(−1) is the refined fundamental estimate from a previous signal segment;
IF the absolute values of the elements of said vector {right arrow over (E)} is less than the minimum of the absolute values of the elements of said vector {right arrow over (E)}−1 AND also less than x, THEN
associating the element ƒ0 of said vector {right arrow over (F)} with the minimum of the absolute values of the elements of said vector {right arrow over (E)};
OTHERWISE
setting ƒ0=φ0.

### Claim 16 (depends on 9)

The computer implementable method of claim 9, wherein said step of producing a refined harmonic estimate, hk further comprises the steps of:
determining whether the minimum of the absolute values of the elements of said vector {right arrow over (E)} is less than the minimum of the absolute values of the elements of said vector {right arrow over (E)}−1, AND also less than x, where
x=p3ƒ0(−1);
p3 is a fractional parameter; and
hk(−1) is the refined fundamental estimate from a previous signal segment;
IF the absolute values of the elements of said vector {right arrow over (E)} is less than the minimum of the absolute values of the elements of said vector {right arrow over (E)}−1 AND also less than x, THEN
associating the element hk of said vector F with the minimum of the absolute values of the elements of said vector {right arrow over (E)};
OTHERWISE setting hk=φk.
