https://en.wikipedia.org/w/index.php?action=history&feed=atom&title=Pitch_detection_algorithm Pitch detection algorithm - Revision history 2025-05-31T13:58:59Z Revision history for this page on the wiki MediaWiki 1.45.0-wmf.3 https://en.wikipedia.org/w/index.php?title=Pitch_detection_algorithm&diff=1240271906&oldid=prev 98.180.42.203: update URL for pitch extraction paper 2024-08-14T13:56:22Z <p>update URL for pitch extraction paper</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 13:56, 14 August 2024</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 3:</td> <td colspan="2" class="diff-lineno">Line 3:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>A '''pitch detection algorithm''' ('''PDA''') is an [[algorithm]] designed to estimate the [[pitch (music)|pitch]] or [[fundamental frequency]] of a [[quasiperiodic]] or [[oscillation|oscillating]] signal, usually a [[digital recording]] of [[speech processing|speech]] or a musical note or tone. This can be done in the [[time domain]], the [[frequency domain]], or both.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>A '''pitch detection algorithm''' ('''PDA''') is an [[algorithm]] designed to estimate the [[pitch (music)|pitch]] or [[fundamental frequency]] of a [[quasiperiodic]] or [[oscillation|oscillating]] signal, usually a [[digital recording]] of [[speech processing|speech]] or a musical note or tone. This can be done in the [[time domain]], the [[frequency domain]], or both.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>PDAs are used in various contexts (e.g. [[phonetics]], [[music information retrieval]], [[speech coding]], [[musical performance system]]s) and so there may be different demands placed upon the algorithm. There is as yet{{When|date=October 2018}} no single ideal PDA, so a variety of algorithms exist, most falling broadly into the classes given below.&lt;ref&gt;D. Gerhard. [<del style="font-weight: bold; text-decoration: none;">http</del>://<del style="font-weight: bold; text-decoration: none;">www</del>.cs.uregina.ca/<del style="font-weight: bold; text-decoration: none;">Research</del>/<del style="font-weight: bold; text-decoration: none;">Techreports</del>/<del style="font-weight: bold; text-decoration: none;">2003</del>-<del style="font-weight: bold; text-decoration: none;">06</del>.pdf Pitch Extraction and Fundamental Frequency: History and Current Techniques], technical report, Dept. of Computer Science, University of Regina, 2003.&lt;/ref&gt;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>PDAs are used in various contexts (e.g. [[phonetics]], [[music information retrieval]], [[speech coding]], [[musical performance system]]s) and so there may be different demands placed upon the algorithm. There is as yet{{When|date=October 2018}} no single ideal PDA, so a variety of algorithms exist, most falling broadly into the classes given below.&lt;ref&gt;D. Gerhard. [<ins style="font-weight: bold; text-decoration: none;">https</ins>://<ins style="font-weight: bold; text-decoration: none;">www2</ins>.cs.uregina.ca/<ins style="font-weight: bold; text-decoration: none;">~gerhard</ins>/<ins style="font-weight: bold; text-decoration: none;">publications</ins>/<ins style="font-weight: bold; text-decoration: none;">TRdbg</ins>-<ins style="font-weight: bold; text-decoration: none;">Pitch</ins>.pdf Pitch Extraction and Fundamental Frequency: History and Current Techniques], technical report, Dept. of Computer Science, University of Regina, 2003.&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>A PDA typically estimates the period of a quasiperiodic signal, then inverts that value to give the frequency.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>A PDA typically estimates the period of a quasiperiodic signal, then inverts that value to give the frequency.</div></td> </tr> </table> 98.180.42.203 https://en.wikipedia.org/w/index.php?title=Pitch_detection_algorithm&diff=1194389795&oldid=prev Citation bot: Add: s2cid, bibcode, pmid, authors 1-1. Removed parameters. Some additions/deletions were parameter name changes. | Use this bot. Report bugs. | Suggested by Abductive | Category:Audio engineering | #UCB_Category 57/240 2024-01-08T19:35:50Z <p>Add: s2cid, bibcode, pmid, authors 1-1. Removed parameters. Some additions/deletions were parameter name changes. | <a href="/wiki/Wikipedia:UCB" class="mw-redirect" title="Wikipedia:UCB">Use this bot</a>. <a href="/wiki/Wikipedia:DBUG" class="mw-redirect" title="Wikipedia:DBUG">Report bugs</a>. | Suggested by Abductive | <a href="/wiki/Category:Audio_engineering" title="Category:Audio engineering">Category:Audio engineering</a> | #UCB_Category 57/240</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 19:35, 8 January 2024</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 12:</td> <td colspan="2" class="diff-lineno">Line 12:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>More sophisticated approaches compare segments of the signal with other segments offset by a trial period to find a match. AMDF ([[average magnitude difference function]]), ASMDF (Average Squared Mean Difference Function), and other similar [[autocorrelation]] algorithms work this way. These algorithms can give quite accurate results for highly periodic signals. However, they have false detection problems (often "''octave errors''"), can sometimes cope badly with noisy signals (depending on the implementation), and - in their basic implementations - do not deal well with [[polyphony|polyphonic]] sounds (which involve multiple musical notes of different pitches).{{Cn|date=October 2018}} </div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>More sophisticated approaches compare segments of the signal with other segments offset by a trial period to find a match. AMDF ([[average magnitude difference function]]), ASMDF (Average Squared Mean Difference Function), and other similar [[autocorrelation]] algorithms work this way. These algorithms can give quite accurate results for highly periodic signals. However, they have false detection problems (often "''octave errors''"), can sometimes cope badly with noisy signals (depending on the implementation), and - in their basic implementations - do not deal well with [[polyphony|polyphonic]] sounds (which involve multiple musical notes of different pitches).{{Cn|date=October 2018}} </div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Current{{When|date=October 2018}} time-domain pitch detector algorithms tend to build upon the basic methods mentioned above, with additional refinements to bring the performance more in line with a human assessment of pitch. For example, the YIN algorithm&lt;ref&gt;{{cite journal | <del style="font-weight: bold; text-decoration: none;">last</del>=de Cheveigné | <del style="font-weight: bold; text-decoration: none;">first</del>=Alain | last2=Kawahara | first2=Hideki | title=YIN, a fundamental frequency estimator for speech and music | journal=The Journal of the Acoustical Society of America | publisher=Acoustical Society of America (ASA) | volume=111 | issue=4 | year=2002 | issn=0001-4966 | doi=10.1121/1.1458024 | pages=1917–1930|url=http://audition.ens.fr/adc/pdf/2002_JASA_YIN.pdf}}&lt;/ref&gt; and the MPM algorithm&lt;ref&gt;P. McLeod and G. Wyvill. [http://www.cs.otago.ac.nz/tartini/papers/A_Smarter_Way_to_Find_Pitch.pdf A smarter way to find pitch.] In Proceedings of the International Computer Music Conference (ICMC’05), 2005.&lt;/ref&gt; are both based upon [[autocorrelation]].</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Current{{When|date=October 2018}} time-domain pitch detector algorithms tend to build upon the basic methods mentioned above, with additional refinements to bring the performance more in line with a human assessment of pitch. For example, the YIN algorithm&lt;ref&gt;{{cite journal | <ins style="font-weight: bold; text-decoration: none;">last1</ins>=de Cheveigné | <ins style="font-weight: bold; text-decoration: none;">first1</ins>=Alain | last2=Kawahara | first2=Hideki | title=YIN, a fundamental frequency estimator for speech and music | journal=The Journal of the Acoustical Society of America | publisher=Acoustical Society of America (ASA) | volume=111 | issue=4 | year=2002 | issn=0001-4966 | doi=10.1121/1.1458024 | pages=1917–1930<ins style="font-weight: bold; text-decoration: none;">| pmid=12002874 | bibcode=2002ASAJ..111.1917D | s2cid=1607434 </ins>|url=http://audition.ens.fr/adc/pdf/2002_JASA_YIN.pdf}}&lt;/ref&gt; and the MPM algorithm&lt;ref&gt;P. McLeod and G. Wyvill. [http://www.cs.otago.ac.nz/tartini/papers/A_Smarter_Way_to_Find_Pitch.pdf A smarter way to find pitch.] In Proceedings of the International Computer Music Conference (ICMC’05), 2005.&lt;/ref&gt; are both based upon [[autocorrelation]].</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Frequency-domain approaches==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Frequency-domain approaches==</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 23:</td> <td colspan="2" class="diff-lineno">Line 23:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Spectral/temporal approaches==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Spectral/temporal approaches==</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Spectral/temporal pitch detection algorithms, e.g. the [[YAAPT pitch tracking algorithm]],&lt;ref&gt;{{cite journal | <del style="font-weight: bold; text-decoration: none;">last</del>=Zahorian | <del style="font-weight: bold; text-decoration: none;">first</del>=Stephen A. | last2=Hu | first2=Hongbing | title=A spectral/temporal method for robust fundamental frequency tracking | journal=The Journal of the Acoustical Society of America | publisher=Acoustical Society of America (ASA) | volume=123 | issue=6 | year=2008 | issn=0001-4966 | doi=10.1121/1.2916590 | pages=4559–4571|url=http://bingweb.binghamton.edu/~hhu1/paper/Zahorian2008spectral.pdf}}&lt;/ref&gt;&lt;ref&gt;Stephen A. Zahorian and Hongbing Hu. [http://ws2.binghamton.edu/zahorian/yaapt.htm YAAPT Pitch Tracking MATLAB Function]&lt;/ref&gt; are based upon a combination of time domain processing using an [[autocorrelation]] function such as normalized cross correlation, and frequency domain processing utilizing spectral information to identify the pitch. Then, among the candidates estimated from the two domains, a final pitch track can be computed using [[dynamic programming]]. The advantage of these approaches is that the tracking error in one domain can be reduced by the process in the other domain.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Spectral/temporal pitch detection algorithms, e.g. the [[YAAPT pitch tracking algorithm]],&lt;ref&gt;{{cite journal | <ins style="font-weight: bold; text-decoration: none;">last1</ins>=Zahorian | <ins style="font-weight: bold; text-decoration: none;">first1</ins>=Stephen A. | last2=Hu | first2=Hongbing | title=A spectral/temporal method for robust fundamental frequency tracking | journal=The Journal of the Acoustical Society of America | publisher=Acoustical Society of America (ASA) | volume=123 | issue=6 | year=2008 | issn=0001-4966 | doi=10.1121/1.2916590 | pages=4559–4571<ins style="font-weight: bold; text-decoration: none;">| pmid=18537404 | bibcode=2008ASAJ..123.4559Z </ins>|url=http://bingweb.binghamton.edu/~hhu1/paper/Zahorian2008spectral.pdf}}&lt;/ref&gt;&lt;ref&gt;Stephen A. Zahorian and Hongbing Hu. [http://ws2.binghamton.edu/zahorian/yaapt.htm YAAPT Pitch Tracking MATLAB Function]&lt;/ref&gt; are based upon a combination of time domain processing using an [[autocorrelation]] function such as normalized cross correlation, and frequency domain processing utilizing spectral information to identify the pitch. Then, among the candidates estimated from the two domains, a final pitch track can be computed using [[dynamic programming]]. The advantage of these approaches is that the tracking error in one domain can be reduced by the process in the other domain.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Speech pitch detection==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Speech pitch detection==</div></td> </tr> </table> Citation bot https://en.wikipedia.org/w/index.php?title=Pitch_detection_algorithm&diff=1111628148&oldid=prev Bjorn fiedelson: /* Frequency-domain approaches */ 2022-09-22T01:27:05Z <p><span class="autocomment">Frequency-domain approaches</span></p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 01:27, 22 September 2022</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 16:</td> <td colspan="2" class="diff-lineno">Line 16:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Frequency-domain approaches==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Frequency-domain approaches==</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Frequency domain, polyphonic detection is possible, usually utilizing the [[periodogram]] to convert the signal to an estimate of the [[frequency spectrum]]&lt;ref&gt;{{cite book |title=Statistical Digital Signal Processing and Modeling |last=Hayes |first=Monson |year=1996 |publisher=John Wiley &amp; Sons, Inc. |isbn=0-471-59431-8 |page=393}}&lt;/ref&gt; </div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Frequency domain, polyphonic detection is possible, usually utilizing the [[periodogram]] to convert the signal to an estimate of the [[frequency spectrum]]&lt;ref&gt;{{cite book |title=Statistical Digital Signal Processing and Modeling |last=Hayes |first=Monson |year=1996 |publisher=John Wiley &amp; Sons, Inc. |isbn=0-471-59431-8 |page=393}}&lt;/ref&gt; </div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>. This requires more processing power as the desired accuracy increases, although the well-known efficiency of the [[Fast Fourier transform|FFT]], a key part of the <del style="font-weight: bold; text-decoration: none;">[[</del>periodogram<del style="font-weight: bold; text-decoration: none;">]]</del> algorithm, makes it suitably efficient for many purposes.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>. This requires more processing power as the desired accuracy increases, although the well-known efficiency of the [[Fast Fourier transform|FFT]], a key part of the periodogram algorithm, makes it suitably efficient for many purposes.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Popular frequency domain algorithms include: the [[harmonic product spectrum]];&lt;ref name="cnxpda"&gt;[http://cnx.org/content/m11714/latest/ Pitch Detection Algorithms], online resource from [[OpenStax CNX|Connexions]]&lt;/ref&gt;&lt;ref&gt;A. Michael Noll, “Pitch Determination of Human Speech by the Harmonic Product Spectrum, the Harmonic Sum Spectrum and a Maximum Likelihood Estimate,” Proceedings of the Symposium on Computer Processing in Communications, Vol. XIX, Polytechnic Press: Brooklyn, New York, (1970), pp. 779–797.&lt;/ref&gt; [[cepstrum|cepstral]] analysis&lt;ref&gt;A. Michael Noll, “[https://asa.scitation.org/doi/abs/10.1121/1.1910339 Cepstrum Pitch Determination],” Journal of the Acoustical Society of America, Vol. 41, No. 2, (February 1967), pp. 293–309.&lt;/ref&gt; and [[maximum likelihood]] which attempts to match the frequency domain characteristics to pre-defined frequency maps (useful for detecting pitch of fixed tuning instruments); and the detection of peaks due to harmonic series.&lt;ref&gt;Mitre, Adriano; Queiroz, Marcelo; Faria, Régis. [http://www.ime.usp.br/~mqz/Mitre_AESBR2006.pdf Accurate and Efficient Fundamental Frequency Determination from Precise Partial Estimates.] Proceedings of the 4th AES Brazil Conference. 113-118, 2006.&lt;/ref&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Popular frequency domain algorithms include: the [[harmonic product spectrum]];&lt;ref name="cnxpda"&gt;[http://cnx.org/content/m11714/latest/ Pitch Detection Algorithms], online resource from [[OpenStax CNX|Connexions]]&lt;/ref&gt;&lt;ref&gt;A. Michael Noll, “Pitch Determination of Human Speech by the Harmonic Product Spectrum, the Harmonic Sum Spectrum and a Maximum Likelihood Estimate,” Proceedings of the Symposium on Computer Processing in Communications, Vol. XIX, Polytechnic Press: Brooklyn, New York, (1970), pp. 779–797.&lt;/ref&gt; [[cepstrum|cepstral]] analysis&lt;ref&gt;A. Michael Noll, “[https://asa.scitation.org/doi/abs/10.1121/1.1910339 Cepstrum Pitch Determination],” Journal of the Acoustical Society of America, Vol. 41, No. 2, (February 1967), pp. 293–309.&lt;/ref&gt; and [[maximum likelihood]] which attempts to match the frequency domain characteristics to pre-defined frequency maps (useful for detecting pitch of fixed tuning instruments); and the detection of peaks due to harmonic series.&lt;ref&gt;Mitre, Adriano; Queiroz, Marcelo; Faria, Régis. [http://www.ime.usp.br/~mqz/Mitre_AESBR2006.pdf Accurate and Efficient Fundamental Frequency Determination from Precise Partial Estimates.] Proceedings of the 4th AES Brazil Conference. 113-118, 2006.&lt;/ref&gt;</div></td> </tr> </table> Bjorn fiedelson https://en.wikipedia.org/w/index.php?title=Pitch_detection_algorithm&diff=1104132329&oldid=prev 2A00:23C4:AF34:4E01:694A:53C8:9935:6219: /* Spectral/temporal approaches */ YAAPT pitch tracking 2022-08-12T22:12:46Z <p><span class="autocomment">Spectral/temporal approaches: </span> <a href="/w/index.php?title=YAAPT_pitch_tracking&amp;action=edit&amp;redlink=1" class="new" title="YAAPT pitch tracking (page does not exist)">YAAPT pitch tracking</a></p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 22:12, 12 August 2022</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 23:</td> <td colspan="2" class="diff-lineno">Line 23:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Spectral/temporal approaches==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Spectral/temporal approaches==</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Spectral/temporal pitch detection algorithms, e.g. the YAAPT pitch tracking,&lt;ref&gt;{{cite journal | last=Zahorian | first=Stephen A. | last2=Hu | first2=Hongbing | title=A spectral/temporal method for robust fundamental frequency tracking | journal=The Journal of the Acoustical Society of America | publisher=Acoustical Society of America (ASA) | volume=123 | issue=6 | year=2008 | issn=0001-4966 | doi=10.1121/1.2916590 | pages=4559–4571|url=http://bingweb.binghamton.edu/~hhu1/paper/Zahorian2008spectral.pdf}}&lt;/ref&gt;&lt;ref&gt;Stephen A. Zahorian and Hongbing Hu. [http://ws2.binghamton.edu/zahorian/yaapt.htm YAAPT Pitch Tracking MATLAB Function]&lt;/ref&gt; are based upon a combination of time domain processing using an [[autocorrelation]] function such as normalized cross correlation, and frequency domain processing utilizing spectral information to identify the pitch. Then, among the candidates estimated from the two domains, a final pitch track can be computed using [[dynamic programming]]. The advantage of these approaches is that the tracking error in one domain can be reduced by the process in the other domain.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Spectral/temporal pitch detection algorithms, e.g. the <ins style="font-weight: bold; text-decoration: none;">[[</ins>YAAPT pitch tracking<ins style="font-weight: bold; text-decoration: none;"> algorithm]]</ins>,&lt;ref&gt;{{cite journal | last=Zahorian | first=Stephen A. | last2=Hu | first2=Hongbing | title=A spectral/temporal method for robust fundamental frequency tracking | journal=The Journal of the Acoustical Society of America | publisher=Acoustical Society of America (ASA) | volume=123 | issue=6 | year=2008 | issn=0001-4966 | doi=10.1121/1.2916590 | pages=4559–4571|url=http://bingweb.binghamton.edu/~hhu1/paper/Zahorian2008spectral.pdf}}&lt;/ref&gt;&lt;ref&gt;Stephen A. Zahorian and Hongbing Hu. [http://ws2.binghamton.edu/zahorian/yaapt.htm YAAPT Pitch Tracking MATLAB Function]&lt;/ref&gt; are based upon a combination of time domain processing using an [[autocorrelation]] function such as normalized cross correlation, and frequency domain processing utilizing spectral information to identify the pitch. Then, among the candidates estimated from the two domains, a final pitch track can be computed using [[dynamic programming]]. The advantage of these approaches is that the tracking error in one domain can be reduced by the process in the other domain.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Speech pitch detection==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Speech pitch detection==</div></td> </tr> </table> 2A00:23C4:AF34:4E01:694A:53C8:9935:6219 https://en.wikipedia.org/w/index.php?title=Pitch_detection_algorithm&diff=1073101133&oldid=prev Fgnievinski: /* See also */ 2022-02-21T01:33:33Z <p><span class="autocomment">See also</span></p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 01:33, 21 February 2022</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 36:</td> <td colspan="2" class="diff-lineno">Line 36:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[Linear predictive coding]]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[Linear predictive coding]]</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[MUSIC (algorithm)]]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[MUSIC (algorithm)]]</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* [[Sinusoidal model]]</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==References==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==References==</div></td> </tr> </table> Fgnievinski https://en.wikipedia.org/w/index.php?title=Pitch_detection_algorithm&diff=1058379965&oldid=prev Rlink2: /* Frequency-domain approaches */archive link repair, may include: archive.* -> archive.today, and http->https for ghostarchive.org and archive.org (wp:el#Specifying_protocols) 2021-12-03T04:54:04Z <p><span class="autocomment">Frequency-domain approaches: </span>archive link repair, may include: archive.* -&gt; archive.today, and http-&gt;https for ghostarchive.org and archive.org (<a href="/wiki/Wikipedia:El#Specifying_protocols" class="mw-redirect" title="Wikipedia:El">wp:el#Specifying_protocols</a>)</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 04:54, 3 December 2021</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 20:</td> <td colspan="2" class="diff-lineno">Line 20:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Popular frequency domain algorithms include: the [[harmonic product spectrum]];&lt;ref name="cnxpda"&gt;[http://cnx.org/content/m11714/latest/ Pitch Detection Algorithms], online resource from [[OpenStax CNX|Connexions]]&lt;/ref&gt;&lt;ref&gt;A. Michael Noll, “Pitch Determination of Human Speech by the Harmonic Product Spectrum, the Harmonic Sum Spectrum and a Maximum Likelihood Estimate,” Proceedings of the Symposium on Computer Processing in Communications, Vol. XIX, Polytechnic Press: Brooklyn, New York, (1970), pp. 779–797.&lt;/ref&gt; [[cepstrum|cepstral]] analysis&lt;ref&gt;A. Michael Noll, “[https://asa.scitation.org/doi/abs/10.1121/1.1910339 Cepstrum Pitch Determination],” Journal of the Acoustical Society of America, Vol. 41, No. 2, (February 1967), pp. 293–309.&lt;/ref&gt; and [[maximum likelihood]] which attempts to match the frequency domain characteristics to pre-defined frequency maps (useful for detecting pitch of fixed tuning instruments); and the detection of peaks due to harmonic series.&lt;ref&gt;Mitre, Adriano; Queiroz, Marcelo; Faria, Régis. [http://www.ime.usp.br/~mqz/Mitre_AESBR2006.pdf Accurate and Efficient Fundamental Frequency Determination from Precise Partial Estimates.] Proceedings of the 4th AES Brazil Conference. 113-118, 2006.&lt;/ref&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Popular frequency domain algorithms include: the [[harmonic product spectrum]];&lt;ref name="cnxpda"&gt;[http://cnx.org/content/m11714/latest/ Pitch Detection Algorithms], online resource from [[OpenStax CNX|Connexions]]&lt;/ref&gt;&lt;ref&gt;A. Michael Noll, “Pitch Determination of Human Speech by the Harmonic Product Spectrum, the Harmonic Sum Spectrum and a Maximum Likelihood Estimate,” Proceedings of the Symposium on Computer Processing in Communications, Vol. XIX, Polytechnic Press: Brooklyn, New York, (1970), pp. 779–797.&lt;/ref&gt; [[cepstrum|cepstral]] analysis&lt;ref&gt;A. Michael Noll, “[https://asa.scitation.org/doi/abs/10.1121/1.1910339 Cepstrum Pitch Determination],” Journal of the Acoustical Society of America, Vol. 41, No. 2, (February 1967), pp. 293–309.&lt;/ref&gt; and [[maximum likelihood]] which attempts to match the frequency domain characteristics to pre-defined frequency maps (useful for detecting pitch of fixed tuning instruments); and the detection of peaks due to harmonic series.&lt;ref&gt;Mitre, Adriano; Queiroz, Marcelo; Faria, Régis. [http://www.ime.usp.br/~mqz/Mitre_AESBR2006.pdf Accurate and Efficient Fundamental Frequency Determination from Precise Partial Estimates.] Proceedings of the 4th AES Brazil Conference. 113-118, 2006.&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>To improve on the pitch estimate derived from the discrete Fourier spectrum, techniques such as [[Reassignment method|spectral reassignment]] (phase based) or [[Grandke interpolation]] (magnitude based) can be used to go beyond the precision provided by the FFT bins. Another phase-based approach is offered by Brown and Puckette &lt;ref&gt;Brown JC and Puckette MS (1993). A high resolution fundamental frequency determination based on phase changes of the Fourier transform. J. Acoust. Soc. Am. Volume 94, Issue 2, pp. 662–667 [https://archive.<del style="font-weight: bold; text-decoration: none;">is</del>/20130414073448/http://asadl.org/jasa/resource/1/jasman/v94/i2/p662_s1?isAuthorized=no ]&lt;/ref&gt;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>To improve on the pitch estimate derived from the discrete Fourier spectrum, techniques such as [[Reassignment method|spectral reassignment]] (phase based) or [[Grandke interpolation]] (magnitude based) can be used to go beyond the precision provided by the FFT bins. Another phase-based approach is offered by Brown and Puckette &lt;ref&gt;Brown JC and Puckette MS (1993). A high resolution fundamental frequency determination based on phase changes of the Fourier transform. J. Acoust. Soc. Am. Volume 94, Issue 2, pp. 662–667 [https://archive.<ins style="font-weight: bold; text-decoration: none;">today</ins>/20130414073448/http://asadl.org/jasa/resource/1/jasman/v94/i2/p662_s1?isAuthorized=no ]&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Spectral/temporal approaches==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Spectral/temporal approaches==</div></td> </tr> </table> Rlink2 https://en.wikipedia.org/w/index.php?title=Pitch_detection_algorithm&diff=1054622601&oldid=prev Forbes72: improve some existing references 2021-11-11T04:18:06Z <p>improve some existing references</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 04:18, 11 November 2021</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 12:</td> <td colspan="2" class="diff-lineno">Line 12:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>More sophisticated approaches compare segments of the signal with other segments offset by a trial period to find a match. AMDF ([[average magnitude difference function]]), ASMDF (Average Squared Mean Difference Function), and other similar [[autocorrelation]] algorithms work this way. These algorithms can give quite accurate results for highly periodic signals. However, they have false detection problems (often "''octave errors''"), can sometimes cope badly with noisy signals (depending on the implementation), and - in their basic implementations - do not deal well with [[polyphony|polyphonic]] sounds (which involve multiple musical notes of different pitches).{{Cn|date=October 2018}} </div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>More sophisticated approaches compare segments of the signal with other segments offset by a trial period to find a match. AMDF ([[average magnitude difference function]]), ASMDF (Average Squared Mean Difference Function), and other similar [[autocorrelation]] algorithms work this way. These algorithms can give quite accurate results for highly periodic signals. However, they have false detection problems (often "''octave errors''"), can sometimes cope badly with noisy signals (depending on the implementation), and - in their basic implementations - do not deal well with [[polyphony|polyphonic]] sounds (which involve multiple musical notes of different pitches).{{Cn|date=October 2018}} </div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Current{{When|date=October 2018}} time-domain pitch detector algorithms tend to build upon the basic methods mentioned above, with additional refinements to bring the performance more in line with a human assessment of pitch. For example, the YIN algorithm&lt;ref&gt;<del style="font-weight: bold; text-decoration: none;">A.</del> de Cheveigné <del style="font-weight: bold; text-decoration: none;">and</del> <del style="font-weight: bold; text-decoration: none;">H.</del> Kawahara<del style="font-weight: bold; text-decoration: none;">.</del> <del style="font-weight: bold; text-decoration: none;">[http://audition.ens.fr/adc/pdf/2002_JASA_YIN.pdf</del> YIN, a fundamental frequency estimator for speech and music<del style="font-weight: bold; text-decoration: none;">.]</del> The Journal of the Acoustical Society of America<del style="font-weight: bold; text-decoration: none;">,</del> <del style="font-weight: bold; text-decoration: none;">Vol.</del> 111<del style="font-weight: bold; text-decoration: none;">,</del> <del style="font-weight: bold; text-decoration: none;">No.</del> 4<del style="font-weight: bold; text-decoration: none;">,</del> <del style="font-weight: bold; text-decoration: none;">April</del> 2002<del style="font-weight: bold; text-decoration: none;">.</del> <del style="font-weight: bold; text-decoration: none;">{{doi</del>|10.1121/1.1458024}}&lt;/ref&gt; and the MPM algorithm&lt;ref&gt;P. McLeod and G. Wyvill. [http://www.cs.otago.ac.nz/tartini/papers/A_Smarter_Way_to_Find_Pitch.pdf A smarter way to find pitch.] In Proceedings of the International Computer Music Conference (ICMC’05), 2005.&lt;/ref&gt; are both based upon [[autocorrelation]].</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Current{{When|date=October 2018}} time-domain pitch detector algorithms tend to build upon the basic methods mentioned above, with additional refinements to bring the performance more in line with a human assessment of pitch. For example, the YIN algorithm&lt;ref&gt;<ins style="font-weight: bold; text-decoration: none;">{{cite</ins> <ins style="font-weight: bold; text-decoration: none;">journal | last=</ins>de Cheveigné <ins style="font-weight: bold; text-decoration: none;">|</ins> <ins style="font-weight: bold; text-decoration: none;">first=Alain</ins> <ins style="font-weight: bold; text-decoration: none;">| last2=</ins>Kawahara <ins style="font-weight: bold; text-decoration: none;">| first2=Hideki |</ins> <ins style="font-weight: bold; text-decoration: none;">title=</ins>YIN, a fundamental frequency estimator for speech and music <ins style="font-weight: bold; text-decoration: none;">| journal=</ins>The Journal of the Acoustical Society of America <ins style="font-weight: bold; text-decoration: none;">|</ins> <ins style="font-weight: bold; text-decoration: none;">publisher=Acoustical Society of America (ASA) | volume=</ins>111 <ins style="font-weight: bold; text-decoration: none;">|</ins> <ins style="font-weight: bold; text-decoration: none;">issue=</ins>4 <ins style="font-weight: bold; text-decoration: none;">|</ins> <ins style="font-weight: bold; text-decoration: none;">year=</ins>2002 |<ins style="font-weight: bold; text-decoration: none;"> issn=0001-4966 | doi=</ins>10.1121/1.1458024<ins style="font-weight: bold; text-decoration: none;"> | pages=1917–1930|url=http://audition.ens.fr/adc/pdf/2002_JASA_YIN.pdf</ins>}}&lt;/ref&gt; and the MPM algorithm&lt;ref&gt;P. McLeod and G. Wyvill. [http://www.cs.otago.ac.nz/tartini/papers/A_Smarter_Way_to_Find_Pitch.pdf A smarter way to find pitch.] In Proceedings of the International Computer Music Conference (ICMC’05), 2005.&lt;/ref&gt; are both based upon [[autocorrelation]].</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Frequency-domain approaches==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Frequency-domain approaches==</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 23:</td> <td colspan="2" class="diff-lineno">Line 23:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Spectral/temporal approaches==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Spectral/temporal approaches==</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Spectral/temporal pitch detection algorithms, e.g. the YAAPT pitch tracking,&lt;ref&gt;Stephen A. <del style="font-weight: bold; text-decoration: none;">Zahorian</del> <del style="font-weight: bold; text-decoration: none;">and</del> Hongbing <del style="font-weight: bold; text-decoration: none;">Hu. [http://bingweb.binghamton.edu/~hhu1/paper/Zahorian2008spectral.pdf</del> A <del style="font-weight: bold; text-decoration: none;">Spectral</del>/temporal method for <del style="font-weight: bold; text-decoration: none;">Robust</del> <del style="font-weight: bold; text-decoration: none;">Fundamental</del> <del style="font-weight: bold; text-decoration: none;">Frequency</del> <del style="font-weight: bold; text-decoration: none;">Tracking.]</del> The Journal of the Acoustical Society of America<del style="font-weight: bold; text-decoration: none;">,</del> <del style="font-weight: bold; text-decoration: none;">123</del> (<del style="font-weight: bold; text-decoration: none;">6</del>)<del style="font-weight: bold; text-decoration: none;">,</del> 2008<del style="font-weight: bold; text-decoration: none;">.</del> <del style="font-weight: bold; text-decoration: none;">{{doi</del>|10.1121/1.2916590}}&lt;/ref&gt;&lt;ref&gt;Stephen A. Zahorian and Hongbing Hu. [http://ws2.binghamton.edu/zahorian/yaapt.htm YAAPT Pitch Tracking MATLAB Function]&lt;/ref&gt; are based upon a combination of time domain processing using an [[autocorrelation]] function such as normalized cross correlation, and frequency domain processing utilizing spectral information to identify the pitch. Then, among the candidates estimated from the two domains, a final pitch track can be computed using [[dynamic programming]]. The advantage of these approaches is that the tracking error in one domain can be reduced by the process in the other domain.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Spectral/temporal pitch detection algorithms, e.g. the YAAPT pitch tracking,&lt;ref&gt;<ins style="font-weight: bold; text-decoration: none;">{{cite journal | last=Zahorian | first=</ins>Stephen A. <ins style="font-weight: bold; text-decoration: none;">|</ins> <ins style="font-weight: bold; text-decoration: none;">last2=Hu |</ins> <ins style="font-weight: bold; text-decoration: none;">first2=</ins>Hongbing <ins style="font-weight: bold; text-decoration: none;">|</ins> <ins style="font-weight: bold; text-decoration: none;">title=</ins>A <ins style="font-weight: bold; text-decoration: none;">spectral</ins>/temporal method for <ins style="font-weight: bold; text-decoration: none;">robust</ins> <ins style="font-weight: bold; text-decoration: none;">fundamental</ins> <ins style="font-weight: bold; text-decoration: none;">frequency</ins> <ins style="font-weight: bold; text-decoration: none;">tracking |</ins> <ins style="font-weight: bold; text-decoration: none;">journal=</ins>The Journal of the Acoustical Society of America <ins style="font-weight: bold; text-decoration: none;">| publisher=Acoustical Society of America</ins> (<ins style="font-weight: bold; text-decoration: none;">ASA</ins>) <ins style="font-weight: bold; text-decoration: none;">| volume=123 | issue=6 | year=</ins>2008 |<ins style="font-weight: bold; text-decoration: none;"> issn=0001-4966 | doi=</ins>10.1121/1.2916590<ins style="font-weight: bold; text-decoration: none;"> | pages=4559–4571|url=http://bingweb.binghamton.edu/~hhu1/paper/Zahorian2008spectral.pdf</ins>}}&lt;/ref&gt;&lt;ref&gt;Stephen A. Zahorian and Hongbing Hu. [http://ws2.binghamton.edu/zahorian/yaapt.htm YAAPT Pitch Tracking MATLAB Function]&lt;/ref&gt; are based upon a combination of time domain processing using an [[autocorrelation]] function such as normalized cross correlation, and frequency domain processing utilizing spectral information to identify the pitch. Then, among the candidates estimated from the two domains, a final pitch track can be computed using [[dynamic programming]]. The advantage of these approaches is that the tracking error in one domain can be reduced by the process in the other domain.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Speech pitch detection==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Speech pitch detection==</div></td> </tr> </table> Forbes72 https://en.wikipedia.org/w/index.php?title=Pitch_detection_algorithm&diff=1037793522&oldid=prev Dmoore5556: /* top */ add short description and hatnote 2021-08-08T19:07:49Z <p><span class="autocomment">top: </span> add short description and hatnote</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 19:07, 8 August 2021</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 1:</td> <td colspan="2" class="diff-lineno">Line 1:</td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>{{short description|Algorithm to estimate signal frequency}}</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>{{redirect|Pitch tracking|the baseball term|Glossary of baseball (P)#pitch tracking}}</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>A '''pitch detection algorithm''' ('''PDA''') is an [[algorithm]] designed to estimate the [[pitch (music)|pitch]] or [[fundamental frequency]] of a [[quasiperiodic]] or [[oscillation|oscillating]] signal, usually a [[digital recording]] of [[speech processing|speech]] or a musical note or tone. This can be done in the [[time domain]], the [[frequency domain]], or both.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>A '''pitch detection algorithm''' ('''PDA''') is an [[algorithm]] designed to estimate the [[pitch (music)|pitch]] or [[fundamental frequency]] of a [[quasiperiodic]] or [[oscillation|oscillating]] signal, usually a [[digital recording]] of [[speech processing|speech]] or a musical note or tone. This can be done in the [[time domain]], the [[frequency domain]], or both.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> </table> Dmoore5556 https://en.wikipedia.org/w/index.php?title=Pitch_detection_algorithm&diff=999503538&oldid=prev Xyzäöå: "–" 2021-01-10T14:42:34Z <p>&quot;–&quot;</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 14:42, 10 January 2021</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 16:</td> <td colspan="2" class="diff-lineno">Line 16:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>. This requires more processing power as the desired accuracy increases, although the well-known efficiency of the [[Fast Fourier transform|FFT]], a key part of the [[periodogram]] algorithm, makes it suitably efficient for many purposes.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>. This requires more processing power as the desired accuracy increases, although the well-known efficiency of the [[Fast Fourier transform|FFT]], a key part of the [[periodogram]] algorithm, makes it suitably efficient for many purposes.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Popular frequency domain algorithms include: the [[harmonic product spectrum]];&lt;ref name="cnxpda"&gt;[http://cnx.org/content/m11714/latest/ Pitch Detection Algorithms], online resource from [[OpenStax CNX|Connexions]]&lt;/ref&gt;&lt;ref&gt;A. Michael Noll, “Pitch Determination of Human Speech by the Harmonic Product Spectrum, the Harmonic Sum Spectrum and a Maximum Likelihood Estimate,” Proceedings of the Symposium on Computer Processing in Communications, Vol. XIX, Polytechnic Press: Brooklyn, New York, (1970), pp. <del style="font-weight: bold; text-decoration: none;">779-797</del>.&lt;/ref&gt; [[cepstrum|cepstral]] analysis&lt;ref&gt;A. Michael Noll, “[https://asa.scitation.org/doi/abs/10.1121/1.1910339 Cepstrum Pitch Determination],” Journal of the Acoustical Society of America, Vol. 41, No. 2, (February 1967), pp. <del style="font-weight: bold; text-decoration: none;">293-309</del>.&lt;/ref&gt; and [[maximum likelihood]] which attempts to match the frequency domain characteristics to pre-defined frequency maps (useful for detecting pitch of fixed tuning instruments); and the detection of peaks due to harmonic series.&lt;ref&gt;Mitre, Adriano; Queiroz, Marcelo; Faria, Régis. [http://www.ime.usp.br/~mqz/Mitre_AESBR2006.pdf Accurate and Efficient Fundamental Frequency Determination from Precise Partial Estimates.] Proceedings of the 4th AES Brazil Conference. 113-118, 2006.&lt;/ref&gt;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Popular frequency domain algorithms include: the [[harmonic product spectrum]];&lt;ref name="cnxpda"&gt;[http://cnx.org/content/m11714/latest/ Pitch Detection Algorithms], online resource from [[OpenStax CNX|Connexions]]&lt;/ref&gt;&lt;ref&gt;A. Michael Noll, “Pitch Determination of Human Speech by the Harmonic Product Spectrum, the Harmonic Sum Spectrum and a Maximum Likelihood Estimate,” Proceedings of the Symposium on Computer Processing in Communications, Vol. XIX, Polytechnic Press: Brooklyn, New York, (1970), pp. <ins style="font-weight: bold; text-decoration: none;">779–797</ins>.&lt;/ref&gt; [[cepstrum|cepstral]] analysis&lt;ref&gt;A. Michael Noll, “[https://asa.scitation.org/doi/abs/10.1121/1.1910339 Cepstrum Pitch Determination],” Journal of the Acoustical Society of America, Vol. 41, No. 2, (February 1967), pp. <ins style="font-weight: bold; text-decoration: none;">293–309</ins>.&lt;/ref&gt; and [[maximum likelihood]] which attempts to match the frequency domain characteristics to pre-defined frequency maps (useful for detecting pitch of fixed tuning instruments); and the detection of peaks due to harmonic series.&lt;ref&gt;Mitre, Adriano; Queiroz, Marcelo; Faria, Régis. [http://www.ime.usp.br/~mqz/Mitre_AESBR2006.pdf Accurate and Efficient Fundamental Frequency Determination from Precise Partial Estimates.] Proceedings of the 4th AES Brazil Conference. 113-118, 2006.&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>To improve on the pitch estimate derived from the discrete Fourier spectrum, techniques such as [[Reassignment method|spectral reassignment]] (phase based) or [[Grandke interpolation]] (magnitude based) can be used to go beyond the precision provided by the FFT bins. Another phase-based approach is offered by Brown and Puckette &lt;ref&gt;Brown JC and Puckette MS (1993). A high resolution fundamental frequency determination based on phase changes of the Fourier transform. J. Acoust. Soc. Am. Volume 94, Issue 2, pp. <del style="font-weight: bold; text-decoration: none;">662-667</del> [https://archive.is/20130414073448/http://asadl.org/jasa/resource/1/jasman/v94/i2/p662_s1?isAuthorized=no ]&lt;/ref&gt;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>To improve on the pitch estimate derived from the discrete Fourier spectrum, techniques such as [[Reassignment method|spectral reassignment]] (phase based) or [[Grandke interpolation]] (magnitude based) can be used to go beyond the precision provided by the FFT bins. Another phase-based approach is offered by Brown and Puckette &lt;ref&gt;Brown JC and Puckette MS (1993). A high resolution fundamental frequency determination based on phase changes of the Fourier transform. J. Acoust. Soc. Am. Volume 94, Issue 2, pp. <ins style="font-weight: bold; text-decoration: none;">662–667</ins> [https://archive.is/20130414073448/http://asadl.org/jasa/resource/1/jasman/v94/i2/p662_s1?isAuthorized=no ]&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Spectral/temporal approaches==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Spectral/temporal approaches==</div></td> </tr> </table> Xyzäöå https://en.wikipedia.org/w/index.php?title=Pitch_detection_algorithm&diff=980070543&oldid=prev James Flatbottom III: /* General approaches */ Updated the YIN paper link. 2020-09-24T12:26:50Z <p><span class="autocomment">General approaches: </span> Updated the YIN paper link.</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 12:26, 24 September 2020</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 10:</td> <td colspan="2" class="diff-lineno">Line 10:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>More sophisticated approaches compare segments of the signal with other segments offset by a trial period to find a match. AMDF ([[average magnitude difference function]]), ASMDF (Average Squared Mean Difference Function), and other similar [[autocorrelation]] algorithms work this way. These algorithms can give quite accurate results for highly periodic signals. However, they have false detection problems (often "''octave errors''"), can sometimes cope badly with noisy signals (depending on the implementation), and - in their basic implementations - do not deal well with [[polyphony|polyphonic]] sounds (which involve multiple musical notes of different pitches).{{Cn|date=October 2018}} </div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>More sophisticated approaches compare segments of the signal with other segments offset by a trial period to find a match. AMDF ([[average magnitude difference function]]), ASMDF (Average Squared Mean Difference Function), and other similar [[autocorrelation]] algorithms work this way. These algorithms can give quite accurate results for highly periodic signals. However, they have false detection problems (often "''octave errors''"), can sometimes cope badly with noisy signals (depending on the implementation), and - in their basic implementations - do not deal well with [[polyphony|polyphonic]] sounds (which involve multiple musical notes of different pitches).{{Cn|date=October 2018}} </div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Current{{When|date=October 2018}} time-domain pitch detector algorithms tend to build upon the basic methods mentioned above, with additional refinements to bring the performance more in line with a human assessment of pitch. For example, the YIN algorithm&lt;ref&gt;A. de Cheveigné and H. Kawahara. [http://<del style="font-weight: bold; text-decoration: none;">www</del>.<del style="font-weight: bold; text-decoration: none;">ircam</del>.fr/<del style="font-weight: bold; text-decoration: none;">pcm</del>/<del style="font-weight: bold; text-decoration: none;">cheveign/pss</del>/2002_JASA_YIN.pdf YIN, a fundamental frequency estimator for speech and music.]<del style="font-weight: bold; text-decoration: none;">{{dead link|date=March 2018 |bot=InternetArchiveBot |fix-attempted=yes }}</del> The Journal of the Acoustical Society of America, 111<del style="font-weight: bold; text-decoration: none;">:1917</del>, 2002. {{doi|10.1121/1.1458024}}&lt;/ref&gt; and the MPM algorithm&lt;ref&gt;P. McLeod and G. Wyvill. [http://www.cs.otago.ac.nz/tartini/papers/A_Smarter_Way_to_Find_Pitch.pdf A smarter way to find pitch.] In Proceedings of the International Computer Music Conference (ICMC’05), 2005.&lt;/ref&gt; are both based upon [[autocorrelation]].</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Current{{When|date=October 2018}} time-domain pitch detector algorithms tend to build upon the basic methods mentioned above, with additional refinements to bring the performance more in line with a human assessment of pitch. For example, the YIN algorithm&lt;ref&gt;A. de Cheveigné and H. Kawahara. [http://<ins style="font-weight: bold; text-decoration: none;">audition</ins>.<ins style="font-weight: bold; text-decoration: none;">ens</ins>.fr/<ins style="font-weight: bold; text-decoration: none;">adc</ins>/<ins style="font-weight: bold; text-decoration: none;">pdf</ins>/2002_JASA_YIN.pdf YIN, a fundamental frequency estimator for speech and music.] The Journal of the Acoustical Society of America,<ins style="font-weight: bold; text-decoration: none;"> Vol.</ins> 111,<ins style="font-weight: bold; text-decoration: none;"> No. 4, April</ins> 2002. {{doi|10.1121/1.1458024}}&lt;/ref&gt; and the MPM algorithm&lt;ref&gt;P. McLeod and G. Wyvill. [http://www.cs.otago.ac.nz/tartini/papers/A_Smarter_Way_to_Find_Pitch.pdf A smarter way to find pitch.] In Proceedings of the International Computer Music Conference (ICMC’05), 2005.&lt;/ref&gt; are both based upon [[autocorrelation]].</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Frequency-domain approaches==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Frequency-domain approaches==</div></td> </tr> </table> James Flatbottom III