Speech coding: Difference between revisions

Content deleted Content added
No edit summary
m avoid bit/s wrap at slash
 
(235 intermediate revisions by more than 100 users not shown)
Line 1:
{{Short description|Lossy audio compression applied to human speech}}
'''Speech coding''' is the [[audio compression|compression]] of speech (into a [[code]]) for [[telecommunication|transmission]] using [[audio signal processing]] and [[speech processing]] techniques.
{{Use American English|date=May 2022}}
The two most important applications using speech coding are [[mobile phone|mobile phones]] and [[internet phone|internet phones]].
{{more citations needed|date=January 2013}}
 
'''Speech coding''' is an application of [[data compression]] to [[digital audio]] signals containing [[speech]]. Speech coding uses speech-specific [[parameter estimation]] using [[audio signal processing]] techniques to model the speech signal, combined with generic data compression algorithms to represent the resulting modeled parameters in a compact bitstream.<ref>{{cite journal|first1=M. |last1=Arjona Ramírez|first2=M.|last2=Minam|title=Low bit rate speech coding|journal=Wiley Encyclopedia of Telecommunications, J. G. Proakis, Ed.|___location=New York| publisher=Wiley|year=2003| volume= 3|pages=1299–1308}}</ref>
The techniques used in speech coding are similar to that in [[audio compression]] and [[audio coding]] where knowledge in [[psychoacoustics]] is used to transmit only data that is relevant to the human auditory system. For example, in narrow-band speech coding, only information in the frequency band 400Hz to 3500Hz is transmitted but the reconstructed signal is still adequate for illegbility [intelligibility?].
However, speech coding differs from audio coding in that there is a lot more statistical information available about the properties of speech. In addition, some auditory information which is relevant in audio coding can be unneccesary in the speech coding context. In speech coding, the most important criterion is always preservation of intelligibility of speech, with a constrained amount of transmitted data.
But it should be emphasised that intelligibility of speech includes, besides the actual literal content, also speaker identity, emotions, intonation, timbre etc. that are all important for perfect intelligibility.
 
Common applications of speech coding are [[mobile telephony]] and [[voice over IP]] (VoIP).<ref>M. Arjona Ramírez and M. Minami, "Technology and standards for low-bit-rate vocoding methods," in The Handbook of Computer Networks, H. Bidgoli, Ed., New York: Wiley, 2011, vol. 2, pp. 447–467.</ref> The most widely used speech coding technique in mobile telephony is [[linear predictive coding]] (LPC), while the most widely used in VoIP applications are the LPC and [[modified discrete cosine transform]] (MDCT) techniques.{{Citation needed|date=December 2019}}
The most common speech coding scheme is Code-Excited Linear Predictive (CELP) coding, which is used for example in the [[GSM]] standard. In CELP, the modelling is divided in two stages, a [[linear prediction|linear predictive]] stage that models the spectral envelope and code-book based model of the residual of the linear predictive model.
 
The techniques usedemployed in speech coding are similar to thatthose used in [[audio data compression]] and [[audio coding]] where knowledgeappreciation inof [[psychoacoustics]] is used to transmit only data that is relevant to the human auditory system. For example, in narrow-band[[voiceband]] speech coding, only information in the frequency band 400Hz400 to 3500Hz3500&nbsp;Hz is transmitted but the reconstructed signal is stillretains adequate for[[Intelligibility illegbility [(communication)|intelligibility?]].
In addition to the actual speech coding of the signal, it is often neccessary to use [[channel coding]] for transmission, to avoid losses due to transmission errors. Usually, speech coding and channel coding methods have to be chosen in pairs in order to get the best overal coding results.
 
Speech coding differs from other forms of audio coding in that speech is a simpler signal than other audio signals, and statistical information is available about the properties of speech. As a result, some auditory information that is relevant in general audio coding can be unnecessary in the speech coding context. Speech coding stresses the preservation of intelligibility and ''pleasantness'' of speech while using a constrained amount of transmitted data.<ref>P. Kroon, "Evaluation of speech coders," in Speech Coding and Synthesis, W. Bastiaan Kleijn and K. K. Paliwal, Ed., Amsterdam: Elsevier Science, 1995, pp. 467-494.</ref> In addition, most speech applications require low coding delay, as [[Latency (audio)|latency]] interferes with speech interaction.<ref>J. H. Chen, R. V. Cox, Y.-C. Lin, N. S. Jayant, and M. J. Melchner, A low-delay CELP coder for the CCITT 16 kb/s speech coding standard. IEEE J. Select. Areas Commun. 10(5): 830-849, June 1992.</ref>
Major subfields:
 
== Categories ==
* [[Wide-band speech coding]]
Speech coders are of two classes:<ref>{{cite web |url = http://users.ece.gatech.edu/~juang/8873/Bae-LPC10.ppt |title = Soo Hyun Bae, ECE 8873 Data Compression & Modeling, Georgia Institute of Technology, 2004 |archive-url=https://web.archive.org/web/20060907225836/http://users.ece.gatech.edu/~juang/8873/Bae-LPC10.ppt |archive-date=7 September 2006 |url-status=dead}}</ref>
** [[GSM]]
# Waveform coders
** [[NMT]]
#* Time-___domain: [[PCM]], [[ADPCM]]
* [[Narrow-band speech coding]]
#* Frequency-___domain: [[sub-band coding]], [[ATRAC]]
# [[Vocoder]]s
#* [[Linear predictive coding]] (LPC)
#* [[Formant synthesis|Formant coding]]
#* [[Machine learning]], i.e. [[Deep learning speech synthesis#Neural vocoder|neural vocoder]]<ref>{{cite journal |last1=Zeghidour |first1=Neil |last2=Luebs |first2=Alejandro |last3=Omran |first3=Ahmed |last4=Skoglund |first4=Jan |last5=Tagliasacchi |first5=Marco |title=SoundStream: An End-to-End Neural Audio Codec |journal=IEEE/ACM Transactions on Audio, Speech, and Language Processing |date=2022 |volume=30 |pages=495–507 |doi=10.1109/TASLP.2021.3129994|arxiv=2107.03312|s2cid=236149944 }}</ref>
 
== Sample companding viewed as a form of speech coding ==
See also: [[Digital signal processing]], [[Speech processing]], [[Audio signal processing]], [[Data compression]], [[Telecommunication]], [[Mobile phone]], [[Psychoacoustic model]], [[Vector quantization]].
The [[A-law]] and [[μ-law algorithm]]s used in [[G.711]] PCM [[digital telephony]] can be seen as an earlier precursor of speech encoding, requiring only 8 bits per sample but giving effectively 12 [[audio bit depth|bits of resolution]].<ref>{{cite book|first1=N. S. |last1=Jayant|first2=P.|last2= Noll|title= Digital coding of waveforms|___location= Englewood Cliffs|publisher= Prentice-Hall|year=1984}}</ref> Logarithmic companding are consistent with human hearing perception in that a low-amplitude noise is heard along a low-amplitude speech signal but is masked by a high-amplitude one. Although this would generate unacceptable distortion in a music signal, the peaky nature of speech waveforms, combined with the simple frequency structure of speech as a [[periodic waveform]] having a single [[fundamental frequency]] with occasional added noise bursts, make these very simple instantaneous compression algorithms acceptable for speech.{{citation needed|date=July 2023}}{{dubious|discuss=Logarithmic companding for music|date=July 2023}}
 
A wide variety of other algorithms were tried at the time, mostly [[delta modulation]] variants, but after careful consideration, the A-law/μ-law algorithms were chosen by the designers of the early digital telephony systems. At the time of their design, their 33% bandwidth reduction for a very low complexity made an excellent engineering compromise. Their audio performance remains acceptable, and there was no need to replace them in the stationary phone network.{{citation needed|date=July 2023}}
 
In 2008, [[G.711.1]] codec, which has a scalable structure, was standardized by ITU-T. The input sampling rate is 16&nbsp;kHz.<ref name="g711-1-2012">{{citation |publisher=ITU-T |date=2012 |url=http://www.itu.int/rec/T-REC-G.711.1/en |title=G.711.1 : Wideband embedded extension for G.711 pulse code modulation |access-date=2022-12-24}}</ref>
 
== Modern speech compression ==
Much of the later work in speech compression was motivated by military research into digital communications for [[Secure voice|secure military radios]], where very low data rates were used to achieve effective operation in a hostile radio environment. At the same time, far more [[processing power]] was available, in the form of [[Very Large Scale Integration|VLSI circuits]], than was available for earlier compression techniques. As a result, modern speech compression algorithms could use far more complex techniques than were available in the 1960s to achieve far higher compression ratios.
 
The most widely used speech coding algorithms are based on [[linear predictive coding]] (LPC).<ref>{{cite journal |last1=Gupta |first1=Shipra |title=Application of MFCC in Text Independent Speaker Recognition |journal=International Journal of Advanced Research in Computer Science and Software Engineering |date=May 2016 |volume=6 |issue=5 |pages=805–810 (806) |s2cid=212485331 |issn=2277-128X |url=https://pdfs.semanticscholar.org/2aa9/c2971342e8b0b1a0714938f39c406f258477.pdf |archive-url=https://web.archive.org/web/20191018231621/https://pdfs.semanticscholar.org/2aa9/c2971342e8b0b1a0714938f39c406f258477.pdf |url-status=dead |archive-date=2019-10-18 |access-date=18 October 2019}}</ref> In particular, the most common speech coding scheme is the LPC-based [[code-excited linear prediction]] (CELP) coding, which is used for example in the [[GSM]] standard. In CELP, the modeling is divided in two stages, a [[linear prediction|linear predictive]] stage that models the spectral envelope and a code-book-based model of the residual of the linear predictive model. In CELP, linear prediction coefficients (LPC) are computed and quantized, usually as [[line spectral pairs]] (LSPs). In addition to the actual speech coding of the signal, it is often necessary to use [[channel coding]] for transmission, to avoid losses due to transmission errors. In order to get the best overall coding results, speech coding and channel coding methods are chosen in pairs, with the more important bits in the speech data stream protected by more robust channel coding.
 
The [[modified discrete cosine transform]] (MDCT) is used in the LD-MDCT technique used by the [[AAC-LD]] format introduced in 1999.<ref name="Schnell">{{cite conference |last1=Schnell|first1=Markus |last2=Schmidt |first2=Markus |last3=Jander |first3=Manuel |last4=Albert |first4=Tobias |last5=Geiger |first5=Ralf |last6=Ruoppila |first6=Vesa |last7=Ekstrand |first7=Per |last8=Bernhard |first8=Grill |date=October 2008 |title=MPEG-4 Enhanced Low Delay AAC - A New Standard for High Quality Communication |url=https://www.iis.fraunhofer.de/content/dam/iis/de/doc/ame/conference/AES-125-Convention_AAC-ELD-NewStandardForHighQualityCommunication_AES7503.pdf |conference=125th AES Convention |publisher=[[Audio Engineering Society]] |access-date=20 October 2019 |website=[[Fraunhofer IIS]]}}</ref> MDCT has since been widely adopted in [[voice-over-IP]] (VoIP) applications, such as the [[G.729.1]] [[wideband audio]] codec introduced in 2006,<ref name="Nagireddi">{{cite book |last1=Nagireddi |first1=Sivannarayana |title=VoIP Voice and Fax Signal Processing |date=2008 |publisher=[[John Wiley & Sons]] |isbn=9780470377864 |page=69 |url=https://books.google.com/books?id=5AneeZFE71MC&pg=PA69}}</ref> [[Apple Inc.|Apple]]'s [[FaceTime]] (using AAC-LD) introduced in 2010,<ref name="AppleInsider standards 1">{{cite web|url=http://www.appleinsider.com/articles/10/06/08/inside_iphone_4_facetime_video_calling.html|date=June 8, 2010|access-date=June 9, 2010|title=Inside iPhone 4: FaceTime video calling|publisher=[[AppleInsider]]|author=Daniel Eran Dilger}}</ref> and the [[CELT]] codec introduced in 2011.<ref name="presentation">[http://people.xiph.org/~greg/video/linux_conf_au_CELT_2.ogv Presentation of the CELT codec] {{Webarchive|url=https://web.archive.org/web/20110807182250/http://people.xiph.org/~greg/video/linux_conf_au_CELT_2.ogv |date=2011-08-07 }} by Timothy B. Terriberry (65 minutes of video, see also [http://www.celt-codec.org/presentations/misc/lca-celt.pdf presentation slides] in PDF)</ref>
 
[[Opus (audio format)|Opus]] is a [[free software]] audio coder. It combines the speech-oriented LPC-based [[SILK]] algorithm and the lower-latency MDCT-based CELT algorithm, switching between or combining them as needed for maximal efficiency.<ref name="homepage">{{cite web |url = https://opus-codec.org/ |title=Opus Codec |work=Opus |publisher=Xiph.org Foundation |type=Home page |access-date=July 31, 2012 }}</ref><ref>{{cite conference |last1=Valin |first1=Jean-Marc |last2=Maxwell |first2=Gregory |last3=Terriberry |first3=Timothy B. |last4=Vos |first4=Koen |title=High-Quality, Low-Delay Music Coding in the Opus Codec |conference=135th AES Convention |publisher=[[Audio Engineering Society]] |date=October 2013 |arxiv=1602.04845 }}</ref> It is widely used for VoIP calls in [[WhatsApp]].<ref name="Register">{{cite news |last1=Leyden |first1=John |title=WhatsApp laid bare: Info-sucking app's innards probed |url=https://www.theregister.co.uk/2015/10/27/whatsapp_forensic_analysis/ |access-date=19 October 2019 |work=[[The Register]] |date=27 October 2015}}</ref><ref name="Hazra">{{cite book |last1=Hazra |first1=Sudip |last2=Mateti |first2=Prabhaker |chapter=Challenges in Android Forensics |editor-last1=Thampi |editor-first1=Sabu M. |editor-last2=Pérez |editor-first2=Gregorio Martínez |editor-last3=Westphall |editor-first3=Carlos Becker |editor-last4=Hu |editor-first4=Jiankun |editor-last5=Fan |editor-first5=Chun I. |editor-last6=Mármol |editor-first6=Félix Gómez |title=Security in Computing and Communications: 5th International Symposium, SSCC 2017 |date=September 13–16, 2017 |publisher=Springer |isbn=9789811068980 |pages=286–299 (290) |doi=10.1007/978-981-10-6898-0_24 |chapter-url=https://books.google.com/books?id=1u09DwAAQBAJ&pg=PA290}}</ref><ref name="Srivastava">{{cite book |last1=Srivastava |first1=Saurabh Ranjan |last2=Dube |first2=Sachin |last3=Shrivastaya |first3=Gulshan |last4=Sharma |first4=Kavita |chapter=Smartphone Triggered Security Challenges: Issues, Case Studies and Prevention |editor-last1=Le |editor-first1=Dac-Nhuong |editor-last2=Kumar |editor-first2=Raghvendra |editor-last3=Mishra |editor-first3=Brojo Kishore |editor-last4=Chatterjee |editor-first4=Jyotir Moy |editor-last5=Khari |editor-first5=Manju |title=Cyber Security in Parallel and Distributed Computing: Concepts, Techniques, Applications and Case Studies |date=2019 |publisher=John Wiley & Sons |isbn=9781119488057 |pages=187–206 (200) |doi=10.1002/9781119488330.ch12 |s2cid=214034702 |chapter-url=https://books.google.com/books?id=FzGtDwAAQBAJ&pg=PA200}}</ref> The [[PlayStation 4]] video game console also uses Opus for its [[PlayStation Network]] system party chat.<ref name="playstation">{{cite web|url=https://doc.dl.playstation.net/doc/ps4-oss/ |title=Open Source Software used in PlayStation4 |publisher=Sony Interactive Entertainment Inc. |access-date=2017-12-11}}{{failed verification|reason=Source does not indicate how Opus is used|date=September 2022}}</ref>
 
A number of codecs with even lower [[bit rate]]s have been demonstrated. [[Codec2]], which operates at bit rates as low as {{nowrap|450 bit/s}}, sees use in amateur radio.<ref>{{cite web |title=GitHub - Codec2 |website=[[GitHub]] |date=November 2019 |url=https://github.com/x893/codec2}}</ref> NATO currently uses [[MELPe]], offering intelligible speech at {{nowrap|600 bit/s}} and below.<ref>Alan McCree, “A scalable phonetic vocoder framework using joint predictive vector quantization of MELP parameters,” in Proc. IEEE Int. Conf. Acoust., Speech, Signal Processing, 2006, pp. I 705–708, Toulouse, France</ref> Neural vocoder approaches have also emerged: [[Lyra (codec)|Lyra]] by Google gives an "almost eerie" quality at {{nowrap|3 kbit/s}}.<ref name=":0">{{Cite web |last=Buckley |first=Ian |date=2021-04-08 |title=Google Makes Its Lyra Low Bitrate Speech Codec Public |url=https://www.makeuseof.com/google-lyra-speech-codec-public/ |access-date=2022-07-21 |website=MakeUseOf |language=en-US}}</ref> Microsoft's [[Satin (codec)|Satin]] also uses machine learning, but uses a higher tunable bitrate and is wideband.<ref name=":3">{{Cite web |last=Levent-Levi |first=Tsahi |date=2021-04-19 |title=Lyra, Satin and the future of voice codecs in WebRTC |url=https://bloggeek.me/lyra-satin-webrtc-voice-codecs/ |access-date=2022-07-21 |website=BlogGeek.me |language=en-US}}</ref>
 
===Sub-fields===
; [[Wideband audio]] coding
* [[Linear predictive coding]] (LPC)
** [[AMR-WB]] for [[WCDMA]] networks
** [[VMR-WB]] for [[CDMA2000]] networks
** [[Speex]], IP-MR, [[SILK]] (part of [[Opus (audio format)|Opus]]), and [[Unified Speech and Audio Coding|USAC/xHE-AAC]] for VoIP and [[videoconferencing]]
* [[Modified discrete cosine transform]] (MDCT)
** [[AAC-LD]], [[G.722.1]], [[G.729.1]], [[CELT]] and [[Opus (audio format)|Opus]] for VoIP and videoconferencing
* [[Adaptive differential pulse-code modulation]] (ADPCM)
** [[G.722]] for VoIP
* [[Wide-bandNeural speech coding]]
** [[Lyra (codec)|Lyra]] (Google): V1 uses neural network reconstruction of log-mel spectrogram; V2 is an end-to-end [[autoencoder]].
** [[Satin (codec)|Satin]] (Microsoft)
** LPCNet (Mozilla, Xiph): neural network reconstruction of LPC features<ref>{{cite web |title=LPCNet: Efficient neural speech synthesis |url=https://github.com/xiph/LPCNet |publisher=Xiph.Org Foundation |date=8 August 2023}}</ref>
 
; [[Narrowband]] audio coding
* LPC
** [[FNBDT]] for military applications
** [[Selectable Mode Vocoder|SMV]] for [[CDMA]] networks
** [[Full Rate]], [[Half Rate]], [[Enhanced full rate|EFR]] and [[Adaptive Multi-Rate audio codec|AMR]] for [[GSM]] networks
** [[G.723.1]], [[G.728]], [[G.729]], [[G.729.1]] and [[iLBC]] for VoIP or videoconferencing
* ADPCM
** [[G.726]] for VoIP
* [[Multi-Band Excitation]] (MBE)
** [[Multi-Band Excitation|AMBE+]] for [[digital radio|digital]] [[mobile radio]] and [[satellite phone]]
** [[GSMCodec 2]]
 
== See also ==
* [[Digital signal processing]]
* [[Speech interface guideline]]
* [[Speech processing]]
* [[Speech synthesis]]
* [[Vector quantization]]
 
==References==
{{reflist}}
 
==External links==
* [http://www.itu.int/net/itu-t/sigdb/genaudio/Pseries.htm ITU-T Test Signals for Telecommunication Systems Test Samples]
* [http://www.itu.int/rec/T-REC-P.862/ ITU-T Perceptual evaluation of speech quality (PESQ) tool Sources]
 
{{Compression Methods}}
 
[[Category:Speech codecs| ]]
[[Category:Data compression]]