TW202427458A - 用於音訊編碼/解碼的錯誤恢復工具 - Google Patents
用於音訊編碼/解碼的錯誤恢復工具 Download PDFInfo
- Publication number
- TW202427458A TW202427458A TW112148750A TW112148750A TW202427458A TW 202427458 A TW202427458 A TW 202427458A TW 112148750 A TW112148750 A TW 112148750A TW 112148750 A TW112148750 A TW 112148750A TW 202427458 A TW202427458 A TW 202427458A
- Authority
- TW
- Taiwan
- Prior art keywords
- packet
- audio signal
- current
- index
- learnable
- Prior art date
Links
- 230000005236 sound signal Effects 0.000 claims description 453
- 238000013139 quantization Methods 0.000 claims description 112
- 238000012545 processing Methods 0.000 claims description 93
- 238000000034 method Methods 0.000 claims description 71
- 230000004913 activation Effects 0.000 claims description 49
- 230000003750 conditioning effect Effects 0.000 claims description 44
- 238000004891 communication Methods 0.000 claims description 34
- 230000000306 recurrent effect Effects 0.000 claims description 20
- 238000013528 artificial neural network Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 16
- 230000001143 conditioned effect Effects 0.000 claims description 15
- 238000010606 normalization Methods 0.000 claims description 11
- 238000001228 spectrum Methods 0.000 claims description 11
- 230000009467 reduction Effects 0.000 claims description 10
- 238000012790 confirmation Methods 0.000 claims description 4
- 238000012905 input function Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 51
- 239000013598 vector Substances 0.000 description 42
- 238000012549 training Methods 0.000 description 24
- 239000011159 matrix material Substances 0.000 description 21
- 230000001537 neural effect Effects 0.000 description 19
- 238000005070 sampling Methods 0.000 description 15
- 238000009877 rendering Methods 0.000 description 12
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 10
- 238000004590 computer program Methods 0.000 description 9
- 238000012937 correction Methods 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 8
- 238000011156 evaluation Methods 0.000 description 6
- 238000011084 recovery Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000015572 biosynthetic process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000003595 spectral effect Effects 0.000 description 5
- 238000003786 synthesis reaction Methods 0.000 description 5
- 230000007704 transition Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 108010076504 Protein Sorting Signals Proteins 0.000 description 2
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 208000009119 Giant Axonal Neuropathy Diseases 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000010339 dilation Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000003631 expected effect Effects 0.000 description 1
- 238000013213 extrapolation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 201000003382 giant axonal neuropathy 1 Diseases 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000059 patterning Methods 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/005—Correction of errors induced by the transmission channel, if related to the coding algorithm
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0475—Generative networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/094—Adversarial learning
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/032—Quantisation or dequantisation of spectral components
- G10L19/038—Vector quantisation, e.g. TwinVQ audio
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L2019/0001—Codebooks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Signal Processing (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本發明提供音訊訊號表示編碼器、音訊編碼器、音訊訊號表示解碼器和音訊解碼器的範例,特別是使用錯誤恢復工具,例如用於可學習的應用程式(如使用神經網路)。本發明的一實例提供一種音訊訊號表示解碼器,被配置為從一位元流解碼一音訊訊號表示,位元流被劃分為一序列之多個封包,音訊訊號表示解碼器包括:一位元流讀取器,被配置為依序讀取該序列之封包;一封包遺失控制器,被配置為確認一當前封包是否被良好接收或是否被視為遺失;一量化索引轉換器,被配置為在封包遺失控制器已經確認當前封包被良好接收的情況下,將從當前封包中提取到的至少一個索引轉換到來自至少一個碼本的至少一個當前代碼上,從而形成音訊訊號表示的至少一部分;其中音訊訊號表示解碼器被配置為在封包遺失控制器已確認當前封包被視為遺失的情況下,由至少一個可學習預測器層根據至少一個在前代碼或索引進行一預測來生成至少一個當前代碼,從而形成音訊訊號表示的至少一部分。
Description
本發明提供音訊訊號表示編碼器、音訊編碼器、音訊訊號表示解碼器和音訊解碼器的範例,特別是使用錯誤恢復工具,例如用於可學習的應用程式(如使用神經網路),特別是,本發明揭露了用於神經端對端語音編解碼器的錯誤恢復工具,例如前向錯誤修正(FEC)和封包遺失補償(PLC)。
傳統語音編解碼系統採用封包遺失補償(PLC)和前向錯誤修正(FEC)等錯誤恢復工具。對於如VoIP這樣的應用程式,頻繁的封包遺失和延遲是不可避免的,而此類工具在維護終端用戶的服務品質方面發揮著至關重要的作用。近年來,基於深度神經網路(deep neural network,DNN)的語音編解碼器由於能夠以極低的位元率傳輸語音訊號而顯著增長,最近提出的神經端對端語音編解碼器(NESC)能夠以3.2kbps或更低的位元率對語音訊號進行有效編碼,並且對雜訊和混響語音訊號具有穩健性(對NESC進行描述,特別是在圖9至13及相關敘述)。將NESC的穩健性擴展到封包遺失方面,我們提出了一種自動回歸神經網路來執行封包遺失補償,並以低至0.8kbps的附加位元率進行低位元率前向錯誤修正,此方法適用於NESC的潛在表示,並且獨立於編解碼器進行訓練。
即時VoIP通訊對網路狀況和網路擁塞具高度敏感性,因會導致封包遺失或封包到達出現較大延遲,解碼器應該能夠處理此類遺失並補償遺失的封包以保持良好的服務品質。基本封包遺失補償(PLC)技術包括靜默遺失幀、重複音調延遲或某種形式的外推等方法。在更先進的技術中,通訊編解碼器(如增強型語音服務(EVS))可以用來支援兩種類型的錯誤恢復工具,其中一種是封包遺失補償,其可以從在前的幀中推斷出代碼參數,例如線譜頻率(LSF),為遺失幀發送的未來幀的音調資訊帶有附加傳輸資訊,另一個是前向錯誤修正(FEC),其中遙遠過去幀的特徵被粗略量化並搭載在未來幀上[1][2]。在預期遺失的情況下傳輸冗餘資訊必須小心謹慎,因為這會對網路連線造成額外的壓力,並可能產生額外的延遲。
近年來,基於神經網路的系統顯示出前所未有的崛起,並在語音增強、語音編碼、語音合成等各個領域超越了傳統系統。同樣地,基於DNN的PLC模型,如WaveNetEQ [3]、PLAAE [4]、基於LPCNet的PLC[5]、[6]等的方法已證明在大爆量和較高錯誤率方面優於傳統的補償方法。這些方法大多數以後處理的方式直接對語音訊號進行補償,而最近提出的基於LPCNet的PLC模型預測未來幀的特徵並使用自動回歸LPCNet產生補償訊號[8]。
(基於DNN的)PLC的後處理的限制如下:
● PLC模型與編碼方案無關,需要微調和調整以支援最佳的不同編解碼器;
● 良好接收到的幀可能會受到後處理步驟的影響;
● 複雜性和延遲的開銷;
● 恢復能力受限於編解碼器的品質 → PLC和編碼模組之間不可能進行聯合訓練。
我們提出一種比[6]在神經編碼方案中更加整合的解決方案,且複雜度更低、侵入性更小,本解決方案透過在逆量化方案中的量化域中進行補償。
另一方面,到目前為止,還沒有或很少有人為神經編碼器提出針對神經編碼的特定FEC解決方案。
參考文獻:● [1] Anssi Rämö and Antti Kurittu and Henri Toukomaa, “EVS Channel Aware Mode Robustness to Frame ErasureEVS Robustness to Frame Erasures”. 2553-2557. 10.21437/Interspeech.2016-917.
● [2] C. Rao and S. Zhao, "Multiple additional bit-rate channel-aware modes in EVS codec for packet loss recovery," 2019 IEEE International Conference on Signal, Information and Data Processing (ICSIDP), 2019, pp. 1-5, doi: 10.1109/ICSIDP47821.2019.9173341.
● [3] F. Stimberg et al., "WaveNetEQ — Packet Loss Concealment with WaveRNN," 2020 54th Asilomar Conference on Signals, Systems, and Computers, 2020, pp. 672-676, doi: 10.1109/IEEECONF51394.2020.9443419.
● [4] Pascual, Santiago, Joan Serrà, and Jordi Pons. "Adversarial auto-encoding for packet loss concealment." 2021 IEEE Workshop on Applications of Signal Processing to Audio and Acoustics (WASPAA). IEEE, 2021.
● [5] Valin, J. M., Mustafa, A., Montgomery, C., Terriberry, T. B., Klingbeil, M., Smaragdis, P., & Krishnaswamy, A. (2022). Real-Time Packet Loss Concealment With Mixed Generative and Predictive Model. arXiv preprint arXiv:2205.05785.
● [6] Xue, Huaying, Xiulian Peng, Xue Jiang, and Yan Lu. "Towards Error-Resilient Neural Speech Coding." arXiv preprint arXiv:2207.00993 (2022).
● [7] Pia, N., Gupta, K., Korse, S., Multrus, M., & Fuchs, G. (2022). NESC: Robust Neural End-2-End Speech Coding with GANs. arXiv preprint arXiv:2207.03282.
● [8] J. Valin and J. Skoglund, A Real-Time Wideband Neural Vocoder at 1.6 kb/s Using LPCNet. arXiv:1903.12087.
● [9] J. Wang, Y. Guan, C. Zheng, R. Peng, and X. Li, “A temporal spectral generative adversarial network based end-to-end packet loss concealment for wideband speech transmission,” The Journal of the Acoustical Society of America, vol. 150, no. 4, pp. 2577–2588, 2021.
本發明提供一種音訊訊號表示解碼器,被配置為從一位元流解碼一音訊訊號表示,該位元流被劃分為一序列之多個封包,該音訊訊號表示解碼器包括:
一位元流讀取器,被配置為依序讀取該序列之該等封包;
一封包遺失控制器,被配置為確認一當前封包是否被良好接收或是否被視為遺失;
一量化索引轉換器,被配置為在該封包遺失控制器已經確認該當前封包被良好接收的情況下,將從該當前封包中提取到的至少一個索引轉換到來自至少一個碼本的至少一個當前代碼上,從而形成該音訊訊號表示的至少一部分;以及
其中,該音訊訊號表示解碼器被配置為在該封包遺失控制器已確認該當前封包被視為遺失的情況下,由至少一個可學習預測器層根據至少一個在前代碼或索引進行一預測來生成該至少一個當前代碼,從而形成該音訊訊號表示的至少一部分。
在本發明一實施態樣中,該至少一個碼本將多個索引關聯至多個代碼或多個部分代碼,使得該量化索引轉換器將從該當前封包中提取的該至少一個索引轉換為至少一個轉換後代碼、或一轉換後代碼的至少一部分。
在本發明一實施態樣中,
該至少一個碼本包括:
一基本碼本,將多個索引關聯至多個主要部分代碼;以及
至少一個低階碼本,將多個索引關聯至多個剩餘部分代碼,
其中,從該當前封包中提取的該至少一索引包括至少一高階索引和至少一低階索引,
其中,該量化索引轉換器被配置為將該至少一高階索引轉換到該當前代碼的一主要部分上,並且將該至少一低階索引轉換到該當前代碼的至少一個剩餘部分上,
其中該量化索引轉換器更被配置為透過將該主要部分添加到該至少一個剩餘部分,來重建該當前代碼。
在本發明一實施態樣中,
該至少一個碼本包括:
一基本碼本,將多個索引關聯至多個主要部分代碼;以及
至少一個低階碼本,
其中,從該當前封包中提取的該至少一索引包括至少一高階索引和至少一低階索引,
其中,該量化索引轉換器被配置為將該至少一高階索引轉換到該當前代碼的一主要部分或一高階子代碼上,並且將該至少一低階索引轉換到該當前代碼的至少一個剩餘部分或一低階子代碼上,
其中該量化索引轉換器更被配置為透過將該主要部分添加到該至少一個剩餘部分或透過將該至少一高階子代碼與該至少一低階子代碼結合,或是透過將該至少一高階子代碼與該至少一低階子代碼結合或透過將該高階子代碼與該至少一低階子代碼結合,來重建該當前代碼。
在本發明一實施態樣中,音訊訊號表示解碼器被配置為至少根據至少一個在前封包或在後封包的該至少一個高階索引來預測該當前代碼,但不根據該至少一個在前封包或在後封包的至少一個最低階索引來預測該至少一當前代碼。
在本發明一實施態樣中,音訊訊號表示解碼器被配置為至少根據至少一個在前封包的該高階索引和至少一個中階索引來預測該當前代碼,但不根據該至少一個在前封包的一最低階索引來預測該當前代碼。
在本發明一實施態樣中,音訊訊號表示解碼器被配置為儲存寫入該位元流的封包中但對應不同封包的冗餘資訊,該音訊訊號表示解碼器被配置為將該冗餘資訊儲存在一儲存單元中,
其中,該音訊訊號表示解碼器被配置為,在該至少一個當前封包被視為遺失的情況下,檢索該儲存單元,並且在檢索到對應該至少一個當前封包的該冗餘資訊的情況下:
從對應該當前封包的該冗餘資訊中檢索出至少一個索引;
使得該量化索引轉換器將從該至少一個碼本中檢索到的至少一個索引轉換為一替代碼;
使得該處理區塊透過將至少一個替代碼轉換為音訊訊號的至少一部分來產生該音訊訊號的至少一部分。
在本發明一實施態樣中,冗餘資訊至少提供該至少一個在前封包或在後封包的該高階索引,但未提供該至少一個在前封包或在後封包的該低階索引中的至少一個。
在本發明一實施態樣中,至少一個可學習預測器被配置為執行該預測,該至少一個可學習預測器具有至少一個可學習預測器層。
在本發明一實施態樣中,透過依序地預測來自多個在前封包及/或在後封包的多個已預測當前代碼或相應的多個當前索引,並且透過比較該等已預測當前代碼或從多個已預測索引中獲得的該等當前代碼與從已良好接收的封包轉換而來的轉換後代碼,來訓練該至少一個可學習預測器,以學習該至少一個可學習預測器層的多個可學習參數,該等可學習參數最小化該預測當前代碼相對於從具有正確格式的該等封包轉換而來的該等轉換後代碼的誤差。
在本發明一實施態樣中,該至少一個可學習預測器層包括至少一個循環可學習層。
在本發明一實施態樣中,該至少一個可學習預測器層包括至少一個門控循環單元。
在本發明一實施態樣中,該至少一個可學習預測器層具有至少一種狀態,
沿著連續的複數個可學習預測器層實例迭代地實例化該至少一個可學習預測器層,
一當前可學習預測器層實例從至少一個在前可學習預測器層實例接收一狀態,其已預測至少一個在前封包的至少一個在前代碼,以便預測該至少一個當前代碼。
在本發明一實施態樣中,為了預測該至少一個當前代碼,該當前可學習預測器層實例在一輸入中接收:
當該至少一個在前封包被認為是被良好接收時,接收該至少一個在前轉換後代碼;以及
當該至少一個在前封包被認為是遺失時,接收該至少一個在前預測代碼。
在本發明一實施態樣中,為了預測該當前代碼,該當前可學習預測器層實例在當該至少一個在前封包被認為是良好接收時與當該至少一個在前封包被認為是遺失時,皆接收來自該至少一個在前迭代的該狀態。
在本發明一實施態樣中,該至少一個可學習預測器層被配置為預測該當前代碼及/或在當該至少一個在前封包被認為是良好接收時與當該至少一個在前封包被認為是遺失時,皆從該至少一個在前可學習預測器層實例接收該狀態,以便提供該預測代碼及/或將該狀態輸出到至少一個後續的可學習預測器層實例。
在本發明一實施態樣中,該當前可學習預測器層實例包括至少一個可學習卷積單元。
在本發明一實施態樣中,該當前可學習預測器層實例包括至少一個可學習循環單元。
在本發明一實施態樣中,該當前可學習層的該至少一個循環單元被輸入來自該至少一個在前可學習預測器層實例的對應的至少一個循環單元的狀態,並且輸出至少一個後續可學習預測器層實例的對應的至少一個循環單元的狀態。
在本發明一實施態樣中,該當前可學習預測器層實例具有一系列之多個可學習層。
在本發明一實施態樣中,對於該當前可學習預測器層實例,該系列之多個可學習層包括至少一個降維可學習層和在該至少一個降維可學習層之後的至少一個增維可學習層。
在本發明一實施態樣中,該至少一個降維可學習層包括具有一狀態的至少一個可學習層。
在本發明一實施態樣中,該至少一個增維可學習層包括不具有一狀態的至少一個可學習層。
在本發明一實施態樣中,該系列之多個可學習層是門控的。
在本發明一實施態樣中,該系列之多個可學習層透過softmax激活函數進行門控。
本發明提供一種音訊訊號表示解碼器,被配置為從一位元流解碼一音訊訊號表示,該位元流被劃分為一序列之封包,音訊訊號表示解碼器包括:
一位元流讀取器,被配置為依序讀取該序列之封包,並從該至少一個當前封包中提取:
該至少一個當前封包的至少一索引;及
至少一個在前封包或在後封包的一冗餘資訊,該冗餘資訊允許在該至少一個在前封包或在後封包內重建至少一個索引;
一封包遺失控制器,被配置為確認該至少一個當前封包是否被良好接收或是否被視為遺失;
一量化索引轉換器,被配置為將該至少一個當前封包的該至少一個索引轉換為來自至少一個碼本的至少一個當前轉換後代碼,從而形成該音訊訊號表示的一部分;以及
一冗餘資訊儲存單元,被配置為儲存該冗餘資訊並且在當該封包遺失控制器已經確認該當前封包被視為遺失的情況下,提供該至少一個當前封包的儲存的該冗餘資訊,以利用該冗餘資訊形成該音訊訊號表示的一部分。
在本發明一實施態樣中,該冗餘資訊儲存單元被配置為儲存來自一在前封包或一在後封包的至少一個索引以作為一冗餘資訊,以便在當該封包遺失控制器確認該至少一個當前封包被視為遺失時,將所儲存之該至少一個索引提供至該量化索引轉換器。
在本發明一實施態樣中,該冗餘資訊儲存單元被配置為儲存先前從一在前封包或一在後封包提取的至少一個代碼以作為一冗餘資訊,以便在當該封包遺失控制器確認該至少一個當前封包被視為遺失時,利用所儲存之該代碼繞過該量化索引轉換器。
在本發明一實施態樣中,該至少一個碼本將多個索引關聯至多個代碼或多個部分代碼,使得該量化索引轉換器將從該當前封包中提取的該至少一個索引轉換為該至少一個轉換後代碼、或該轉換後代碼的至少一部分。
在本發明一實施態樣中,該至少一碼本包括:
一基本碼本,將多個索引關聯至多個主要部分代碼;以及
至少一個低階碼本,將多個索引關聯至多個剩餘部分代碼,
其中,從該當前封包中提取的該至少一索引包括至少一高階索引和至少一低階索引,
其中,該量化索引轉換器被配置為將該至少一高階索引轉換到該當前代碼的一主要部分上,並且將該至少一低階索引轉換到該當前代碼的至少一個剩餘部分上,
其中該量化索引轉換器更被配置為透過將該主要部分添加到該至少一個剩餘部分,來重建該當前代碼。
在本發明一實施態樣中,音訊訊號表示解碼器被配置為從該至少一個在前封包或在後封包的該至少一高階索引生成或取得該至少一個當前代碼,但不是從該至少一個在前封包或在後封包的最低階索引生成或取得該至少一個當前代碼。
在本發明一實施態樣中,音訊訊號表示解碼器被配置為從該至少一個在前封包或在後封包的該至少一高階索引和至少一個中階索引生成或取得該至少一個當前代碼,但不是從該至少一個在前封包或在後封包的最低階索引生成或取得該至少一個當前代碼。
本發明提供一種音訊產生器,用於從一位元流產生一音訊訊號,包括前述之任一音訊訊號表示解碼器,
更被配置為透過將該音訊訊號表示轉換到該音訊訊號來產生該音訊訊號。
在本發明一實施態樣中,音訊產生器更被配置為渲染所產生的該音訊訊號。
在本發明一實施態樣中,音訊產生器包括:
一第一資料提供器,被配置為針對一給定幀(如待生成之音訊訊號的一部分)提供從一輸入訊號導出的一第一資料;
一第一處理區塊,被配置為針對該給定幀接收該第一資料、並在該給定幀中輸出一第一輸出資料,
音訊產生器更包括:
至少一調節可學習層,被配置為針對該給定幀處理來自解碼後的該音訊訊號表示的一目標資料,以獲得多個調節特徵參數;以及
一樣式元件,被配置為將該等調節特徵參數套用於該第一資料或一歸一化的第一資料。
在本發明一實施態樣中,音訊產生器被配置為使得該音訊訊號的位元率大於該目標資料及/或該第一資料及/或該第二資料的位元率。
在本發明一實施態樣中,該第二處理區塊被配置為增加第二資料的位元率,以獲得該音訊訊號。
在本發明一實施態樣中,第一處理區塊被配置為將該第一資料從該給定幀的多個樣本數增加取樣到該給定幀的一第二樣本數,第二樣本數大於該第一樣本數。
在本發明一實施態樣中,第二處理區塊被配置為將從第一處理區塊獲得的第二資料從該給定幀的第二樣本數增加取樣到該給定幀的一第三樣本數,第三樣本數大於該第二樣本數。
在本發明一實施態樣中,音訊產生器被配置為將第一資料的聲道數量從一第一聲道數量減少到該第一輸出資料的一第二聲道數量,第二聲道數量低於第一聲道數量。
在本發明一實施態樣中,第二處理區塊被配置為將從第一處理區塊獲得的第一輸出資料的聲道數量從音訊訊號的第二聲道數量減少到第三聲道數量,其中第三聲道數量低於第二聲道數量。
在本發明一實施態樣中,音訊訊號是單聲道音訊訊號。
在本發明一實施態樣中,音訊產生器被配置為從該音訊訊號表示獲得該輸入訊號。
在本發明一實施態樣中,音訊產生器被配置為從一雜訊中獲得該輸入訊號。
在本發明一實施態樣中,可學習層的調節集合包括一個或至少兩個卷積層。
在本發明一實施態樣中,至少一預調節可學習層被配置為接收該音訊訊號表示或其處理後版本、並為該給定幀輸出表示該給定幀中的該音訊訊號的一目標資料。
在本發明一實施態樣中,該至少一預調節可學習層被配置為提供該目標資料以作為一頻譜圖或一解碼後頻譜圖。
在本發明一實施態樣中,一第一卷積層被配置為使用一第一激活函數對該目標資料或一增加取樣的目標資料進行卷積以獲得一第一卷積資料。
在本發明一實施態樣中,可學習層的調節集合和樣式元件是包括一個或多個剩餘區塊的神經網路的一剩餘區塊中的一權重層的一部分。
在本發明一實施態樣中,音訊產生器更包括一歸一化元件,其被配置為歸一化該第一資料。
在本發明一實施態樣中,音訊產生器更包括一歸一化元件,其被配置為歸一化該頻道維度中的該第一資料。
在本發明一實施態樣中,音訊訊號是語音音訊訊號。
在本發明一實施態樣中,將該目標資料依據一因子或另一因子進行增加取樣,其中該因子為2的冪,該另一因子例如為2.5或2.5的倍數。
在本發明一實施態樣中,將該目標資料依據一非線性插值法進行增加取樣。
在本發明一實施態樣中,第一處理區塊更包括:
另一組可學習層,被配置為使用一第二激活函數處理從該第一資料導出的資料,
其中該第二激活函數是一門控激活函數。
在本發明一實施態樣中,該另一組可學習層包括一個或兩個以上的卷積層。
在本發明一實施態樣中,第二個激活函數是一softmax門控雙曲正切(TanH)函數。
在本發明一實施態樣中,第一個激活函數是一個帶洩漏線性整流單元(leaky ReLu)函數。
在本發明一實施態樣中,卷積運算以最大膨脹因子為2進行運作。
在本發明一實施態樣中,一音訊產生器包括八個第一處理區塊和一個第二處理區塊。
在本發明一實施態樣中,第一資料具有一個維度,其低於該音訊訊號。
在本發明一實施態樣中,該目標資料為一頻譜圖。
在本發明一實施態樣中,本發明提供一種編碼器,包括:
一音訊訊號表示產生器,被配置為透過至少一可學習層產生一音訊訊號表示以作為一音訊訊號的一表示,該音訊訊號表示包括一序列之張量;
一量化器,被配置為將該序列之張量中的每個當前張量轉換為至少一個索引,其中每個該索引是從將複數個張量與複數個索引相關聯的至少一個碼本中所獲得的;
一位元流寫入器,被配置為將多個封包寫入一位元流中,使得一當前封包包括該序列之張量中的該當前張量的該至少一索引,
其中,該編碼器被配置為將該當前張量的一冗餘資訊寫入該位元流中與該當前封包不同的至少一個在前封包或在後封包中,及/或將與該當前張量不同的一張量的一冗餘資訊寫入該當前封包。
在本發明一實施態樣中,該至少一個碼本將部分之多個張量關聯至多個索引,使得該量化器將該當前張量轉換為複數個索引。
在本發明一實施態樣中,該至少一個碼本包括:
一基本碼本,將多個主要部分張量關聯至多個索引;以及
至少一個低階碼本,將多個剩餘部分張量關聯至多個索引,
其中該至少一當前張量具有至少一主要部分及至少一剩餘部分,
其中該量化器被配置為將該至少一個當前張量的該主要部分轉換成至少一個高階索引,並且將該至少一個張量的該至少一個剩餘部分轉換成至少一個低階序索引,
使得該位元流寫入器在該位元流中同時寫入該高階索引和該至少一個低階索引。
在本發明一實施態樣中,編碼器被配置為提供具有該至少一個在前封包或在後封包的該至少一個或多個高階索引的該冗餘資訊,但不包括相同之該至少一個在前封包或在後封包的該最低階索引。
在本發明一實施態樣中,編碼器,被配置為透過一通訊頻道發送該位元流。
在本發明一實施態樣中,編碼器被配置為監視該通訊頻道的一有效負載狀態,以便當該通訊頻道中的該有效負載狀態超過一預定閾值時,增加該冗餘資訊的數量。
在本發明一實施態樣中,編碼器被配置為:
當該通訊頻道的該有效負載低於該預定閾值時,對於每個該當前封包僅傳輸該至少一個在前封包或在後封包的多個高階索引作為該冗餘資訊;及
當該通訊頻道的該有效負載超過該預定閾值時,對於每個該當前封包傳輸該至少一個在前封包或在後封包的該等高階索引和相同的該至少一個在前封包或在後封包的至少數個低階索引作為該冗餘資訊。
在本發明一實施態樣中,編碼器被配置為至少根據該通訊頻道的該有效負載的函數來計算該當前封包與具有該冗餘資訊的該至少一個在前封包或在後封包之間的一封包偏移。
在本發明一實施態樣中,編碼器被配置為至少根據一預設應用函數來計算該當前封包與具有該冗餘資訊的該至少一個在前封包或在後封包之間的一封包偏移。
在本發明一實施態樣中,編碼器被配置為至少根據一終端用戶提供的一輸入函數來計算該當前封包與具有該冗餘資訊的該至少一個在前封包或在後封包之間的一封包偏移。
在本發明一實施態樣中,該至少一個碼本包括將複數個張量與複數個索引相關聯的一冗餘碼本,其中該編碼器被配置為將該當前張量的該冗餘資訊寫入到該位元流中與該當前封包不同的該至少一個在前封包或在後封包中,以作為從該至少一個量化碼本接收的一索引。
在本發明一實施態樣中,本發明提供一種解碼音訊訊號表示的方法,用於從一位元流解碼一音訊訊號表示,該方法包括:
讀取該位元流中包含的一序列之封包,並從一當前封包中提取:
該當前封包的至少一個索引;及
在至少一個在前封包或在後封包中的一冗餘資訊,該冗餘資訊允許重構在該至少一個在前封包或在後封包內的至少一個索引;
確認該當前封包是否被良好接收或被視為遺失;
將該當前封包的該至少一個索引轉換為來自至少一個碼本的至少一個當前轉換後代碼,從而形成該音訊訊號表示的一部分;
儲存該冗餘資訊,並且在確認後判斷該當前封包被視為遺失時提供該當前封包中所儲存的該冗餘資訊,以利用該冗餘資訊來形成該音訊訊號表示的一部分。
在本發明一實施態樣中,本發明提供一種解碼音訊訊號表示的方法,用於從一位元流解碼一音訊訊號表示,該位元流被劃分為一序列之封包,該方法包括:
依序讀取該序列之封包;
確認一當前封包是否被良好接收或是否被視為遺失;
當確認該當前封包被良好接收時,將從該當前封包提取的至少一個索引轉換為來自至少一個碼本的至少一個當前代碼,從而形成該音訊訊號表示的至少一部分;以及
當確認該當前封包被視為遺失時,通過至少一個可學習預測器層以利用來自至少一個在前代碼或索引的預測來產生至少一個當前代碼。
在本發明一實施態樣中,本發明提供一種方法,包括:
透過至少一個可學習層產生一音訊訊號表示作為一音訊訊號的一表示,該音訊訊號表示包括一序列之張量;
將該序列之張量中的每個當前張量轉換為至少一個索引,其中各該索引是從將複數個張量與複數個索引相關聯的至少一個碼本獲得的;以及
將多個封包寫入一位元流中,使得一當前封包包括該序列之張量中的該當前張量的該至少一個索引,
其中,該方法包括將該當前張量的一冗餘資訊寫入該位元流中與該當前封包不同的至少一個在前封包或在後封包中,及/或將至少一個待寫入之張量的一冗餘資訊寫入該位元流中與該當前封包不同的至少一個在前封包或在後封包中。
在本發明一實施態樣中,本發明提供一種非暫時性儲存單元,用以儲存多個指令,當該等指令被一電腦執行時,該電腦進行下列步驟:
從一當前封包中提取:
該當前封包的至少一個索引;及
在至少一個在前封包或在後封包中的一冗餘資訊,該冗餘資訊允許重構在該至少一個在前封包或在後封包內的至少一個索引;
確認該當前封包是否被良好接收或被視為遺失;
將該當前封包的該至少一個索引轉換為來自至少一個碼本的至少一個當前轉換後代碼,從而形成該音訊訊號表示的一部分;
控制以儲存該冗餘資訊,並且在確認後判斷該至少一個當前封包被視為遺失時擷取該至少一個當前封包中所儲存的該冗餘資訊,以利用該冗餘資訊來形成該音訊訊號表示的一部分。
在本發明一實施態樣中,本發明提供一種非暫時性儲存單元,用以儲存多個指令,當該等指令被一電腦執行時,該電腦進行下列步驟:
依序讀取一序列之封包;
確認一當前封包是否被良好接收或是否被視為遺失;
當確認該當前封包被良好接收時,將從該當前封包提取的至少一個索引轉換為來自至少一個碼本的至少一個當前代碼,從而形成該音訊訊號表示的至少一部分;以及
當確認該當前封包被視為遺失時,通過至少一個可學習預測器層以利用來自至少一個在前代碼或索引的預測來產生至少一個當前代碼。
在本發明一實施態樣中,本發明提供一種非暫時性儲存單元,用以儲存多個指令,當該等指令被一電腦執行時,該電腦進行下列步驟:
透過至少一個可學習層產生一音訊訊號表示作為一音訊訊號的一表示,該音訊訊號表示包括一序列之張量;
將該序列之張量中的每個當前張量轉換為至少一個索引,其中各該索引是從將複數個張量與複數個索引相關聯的至少一個碼本獲得的;
將多個封包寫入一位元流中,使得一當前封包包括該序列之張量中的該當前張量的該至少一個索引;以及
將該當前張量的一冗餘資訊寫入該位元流中與該當前封包不同的至少一個在前封包或在後封包中,及/或將至少一個待寫入之張量的一冗餘資訊寫入該位元流中與該當前封包不同的至少一個在前封包或在後封包中。
在上述實施態樣中,通常指的是部分的代碼,例如,其可以指分量(如加數)或子代碼(如高階子代碼和低階子代碼)。
需注意者,以下將經常提到可學習層,這些可學習層可以在例如神經網路中實現。
圖6a和圖6b顯示編碼器1600的兩個實施例,具體而言,圖6a顯示一編碼器1600a,而圖6b顯示一編碼器1600b。
請參考圖6a,如圖6a所示的編碼器1600a可將一輸入音訊訊號1602編碼到一位元流1630上,輸入音訊訊號1602可以是一音訊訊號的未壓縮類比或數位表示,其例如可以是從麥克風錄下、及/或儲存在儲存單元中、及/或從遠端接收。編碼器1600a可以依序地操作,例如透過從輸入音訊訊號1602的一部分依序地產生位元流的一封包(或封包的一部分、或多個封包)。編碼器1600a可以包括音訊訊號表示產生器1604,音訊訊號表示產生器1604可以包括至少一個可學習層,並且因此可以被認為是一可學習音訊訊號表示產生器1604,音訊訊號表示產生器1604可以生成(例如,通過至少一個可學習層)音訊訊號表示1606,其可以是一序列之張量(代碼)。每個張量可以是向量或矩陣、或廣義矩陣(例如具有多於2個維度,如n x m x p之張量,其中n、m和p中的至少一個大於1),如果張量是向量時,則其至少應具有二個維度(例如nx1矩陣,其中n大於1)。
編碼器1600a可以包括一量化器1608,量化器1608可以將該序列之張量中的每個當前張量1606轉換為至少一個索引1626,因此,量化器1608可以輸出一序列之索引。
每個索引可以從至少一個碼本中接收。如圖6a所示,元件符號1620共同指示至少一個碼本。一般而言,量化器1608可以在至少一個碼本1620中搜尋應表示在位元流1630中的一特定代碼(或其一部分)。
在一些實施例中,可能存在多個碼本。圖6a顯示一種高階碼本1622,高階碼本可以輸出至少一個高階索引1623到量化器1608。圖6a亦顯示一種低階碼本1624(其可以是可選的),其可以將低階索引1625輸出到量化器1608。這是因為,在一些實施例中,可以將多個索引與一個張量相關聯,以提高解析度:較高階的索引1623將被授予張量1606的最重要部份,而較低階的索引1625將被授予張量1606的較不重要的部分; 依此類推,直到將最低階的索引授予張量1606的最不重要的部分。因此,可能存在多個低階碼本,並且,在本實施例中,不同碼本之間可以存在排名,使得每個碼本具有與其他碼本不同的排名;可以存在基本碼本,其是一個最高階的碼本和多個低階的碼本。在一些實施例中,可以存在三個碼本,例如作為最高階碼本的一基本碼本、一中階碼本和一最低階碼本。在其他實施例中,可以存在四個碼本,例如作為最高階碼本的一基本碼本、一第一最高階碼本、一第二最高階碼本和一最低階碼本。從基本碼本輸出的索引是最高階的索引,從最低階碼本輸出的索引是最低階的索引,依此類推。然而,在一些實施例中,可以存在單一個碼本1620,並且因此可以不存在低階碼本1624。在任何情況下,無論是單獨存在的,還是存在多個碼本1622、1624等,每個碼本1620為每個張量或部分張量提供一個索引1626,因此,例如,在只有一個碼本且不存在低階碼本1624的情況下,每個張量1606被映射到一個索引1626上;或者,例如在有多個碼本(如碼本1622、1624等)的情況下,每個張量1606可以被映射到多個索引1626(如,索引1623、1625)。對於輸入到量化器1608中的每個張量,可以例如透過其位置來識別所輸出的索引1626。
當使用數個碼本時,量化器1608可以涉及稱為分割向量量化和多層向量量化(亦稱為殘差向量量化)的技術。在分割向量量化中,要量化的張量被分割成多個子向量(或大多被稱為子張量),然後再各別地被量化。這允許對量化過程進行更細粒度的控制,因為可以使用不同的位元寬度或精度等級來量化不同的子向量(或大多被稱為子張量)。分割向量量化的設計可以透過為每個子向量(或大多被稱為子張量)選擇最佳位元寬度來手動執行,也可以使用機器學習技術來自動執行。相反地,多層向量量化涉及在迭代多個階段中將張量從較低精度表示量化為較高精度表示,其中每個階段進一步減少量化失真。如上所述,可以透過首先以最高階的碼本對張量進行編碼,然後利用第二高階的碼本對所得到的量化誤差進行編碼來實現的,重複此過程直到具有最低階碼本的最後階段。再次強調,量化設計可以透過為每個階段選擇最佳位元寬度來手動完成,也可以使用機器學習技術來自動完成。
編碼器1600a可以包括一位元流寫入器1628,位元流寫入器1628可以將多個封包寫入位元流1630。舉例而言,索引1626(如索引1623、1625)可以根據預定的語法被封裝在一當前封包中及/或在一預定位置。如圖3a所示(見下文),一封包可以包括一個主幀和一個輔助幀,主幀可以是攜帶由量化器1608基於至少一個碼本寫入的索引1626,輔助幀可以攜帶冗餘資訊1612或1612b(如下所述),因此,編碼器1600a可以將當前張量1606的冗餘資訊1612寫入位元流1630中。然而,值得注意的是,冗餘資訊1612可以被寫入位元流1630中與當前封包不同的至少一個在前或在後的封包中。類似地,在位元流中的在前或在後封包中,甚至可能存在其他封包的冗餘資訊。
此外,當前封包可以與不同封包的冗餘資訊相關聯(例如在相同幀中)。對於每個封包,位元流1630還可以包括其他資訊,例如封包識別子和句法冗餘校驗資訊(如循環冗餘校驗(CRC)資訊、或其他句法冗餘校驗資訊(如奇偶校驗/視差位元等),這將有助於接收端確認封包被視為正確接收(因此將用於渲染音訊訊號)或封包被視為遺失(因此將用於渲染音訊訊號)。然而,有利的是,即使接收端認為封包被視為遺失,但在至少一個其他封包中將存在冗餘資訊,可以允許至少部分地重建音訊訊號的部分。
根據一實施例,冗餘資訊1612可以由一冗餘資訊儲存器1610輸出,例如可被提供給一位元流寫入器1628。冗餘資訊儲存器1610可以儲存與當前張量1606相關的索引1626(如索引1623、1625),並且在與當前張量1606不同的封包中將索引提供給位元流寫入器1628。需注意者,如圖6a所示的高階索引1623(從高階碼本1622接收)和低階索引1625(從低階碼本1624接收)都被提供給冗餘資訊儲存器1610。儘管如此,在在一些實施例中,僅將高階碼本1623提供給冗餘資訊儲存器1610,而避免將低階碼本1625提供給冗餘資訊儲存器1610;在這種情況下,結果是低階碼本1625將不參與將被寫入位元流1630中的冗餘資訊1612。在存在兩個以上之碼本(如高階碼本、基本碼本、中階碼本、排序低於基本碼本的低排序碼本等)的實施例中,可以僅將來自較高階碼本的索引提供給冗餘資訊儲存器1610,同時將至少一個低階碼本的索引不會被提供給冗餘資訊儲存器。在一些實施例中,至少多個低階索引中的至少一些(例如全部)也被提供給冗餘資訊儲存器1610,但是依據網路的有效負載狀態,動態地決定是否也將低階索引提供給位元流寫入器1628,例如當網路繁忙超過預定閾值時,則至少一些較低階的索引不會被寫入位元流1630中,而如果網路繁忙超過預定閾值,也可以將較低階的索引寫入位元流1630中(詳見下文)。
因此,每個碼本1620(1622、1624等)可以將多個張量的部分與多個索引相關聯,使得量化器1608將當前張量1606轉換為複數個索引。
如上所述,每個碼本1620(1622、1624等)可以包括(在一些實施例中)一基本碼本1622以及至少一個低階碼本1624,基本碼本1622將多個張量的主要部分與多個索引相關聯,至少一個低階碼本1624將多個張量的剩餘部分與多個索引相關聯。這是因為每個張量可以具有至少一個主要部分和至少一個剩餘部分(剩餘部分可以多於一個,並且可以如碼本所示的精確排序),因此,量化器1608可將至少一個當前張量的主要部分轉換為至少一高階索引1623,且將至少一個張量的至少一剩餘部分轉換為至少一個低階索引1625。因此,位元流寫入器1628可以在位元流1620中同時寫入高階索引和至少一個低階索引1625。如上所述,在某些實施例中,僅至少一個在前或在後的封包的至少一個高階索引1623(從高階碼本1622獲得)會被寫入位元流中,而至少最低階索引1625(或,在一些實施例中,具有排序在最高階碼本和最低階碼本之間的其他低階索引)不會被寫入位元流1630中。
在如圖6b所示的編碼器1600b中,可學習音訊訊號表示產生器1604可以與如圖6a所示的編碼器1600a的可學習音訊訊號表示產生器相同,而且位元流寫入器1628原則上可以與如圖6a所示的編碼器1600a的類似位元流寫入器沒有不同。可以存在至少一個碼本1620a(如1622、1624),其原則上可以與圖6a所示的編碼器1600a的至少一個碼本1620(如1622、1624)相同。然而,在編碼器1600b中,冗餘資訊(這裡用1612b表示)可以從索引1623b取得,該索引1623b源自與碼本1620a不同的至少一個碼本1620b(“冗餘碼本”)。由碼本1620b提供的索引1623b可以是具有受限解析度和減少長度的碼本(因此減少有效負載並加速傳輸)。基本上,碼本1620b通常不同於將索引1626(如1623、1625等)輸出到量化器1608的主要碼本1620a(1622、1624)。有利地,由冗餘碼本1620b提供的索引1623b可以是具有比至少一個碼本1620a(如1622、1624等)提供的索引1626(如1623、1625等)更差的分辨率,因此,至少一個碼本1620a可被認為是至少一個主要碼本,而至少一個冗餘碼本1620b(其可能具有較差的分辨率)可提供關於索引1626(如位元流1630中提供的索引1623、1625等)的近似資訊。因此,冗餘碼本1620b可以提供索引1623b,其佔用比主要碼本1620a輸出的索引更少的位元長度。此外,可以針對冗餘資訊儲存的特定大小和需求來設計和訓練冗餘碼本,這將導致比保留部分從量化器1608導出的索引更好的冗餘資訊1612b。除此之外,至少一個碼本1620b(以及索引1623b)可以具有與至少一個主要碼本1620a相同的設計,例如,可能存在一個高階冗餘碼本和至少一個低階冗餘碼本,並且可以存在不同的近似值等,因此,箭頭1623b是單個箭頭的事實並不一定意味著存在冗餘碼本1620b僅輸出一個單一索引1623b。因此,冗餘碼本1620b可以在任何態樣以與排序碼本1620a相同的方式來描述,因此,原則上針對至少一個碼本1620(1622、1624)或1624a所描述的任何特徵也可以用於描述冗餘碼本(1610)的任何示例,並且為了簡潔起見,不再贅述。
圖3a顯示封裝由量化器1608轉換的索引1626和編碼器1600a和1600b中的任何一個的冗餘資訊1612或1612b的實施例,冗餘資訊1612或1612b可以由例如位元流寫入器1628產生,例如可在抖動緩衝器1628j中產生。位元流寫入器1628(如抖動緩衝器1628j)因此可以在主幀(其可以包含由量化器1608輸出的索引1626)和冗餘幀(其可以包含冗餘資訊1612或1612b)中生成封包。如圖所示,第n個封包具有第n個主幀和第(n-5)個冗餘幀,第(n+1)個封包具有第(n+1)個主幀和第(n-4)個冗餘幀(其也是冗餘資訊1612或1612b),最多到第(n+5)個封包具有第(n+5)個主幀和第n個冗餘幀。基本上,在第(n+5)個封包中,從第n個封包(如簡化版本的封包)獲取冗餘資訊,例如僅高階索引1623但不包括低階索引1625,因此當位元流寫入器1628對第n個封包進行編碼時,第n個主幀的資訊被提供給冗餘資訊儲存器1610(在如圖6a的編碼器1600a的情況下),以隨後被用作冗餘資訊1612,用於對第(n+5)個封包進行編碼。在其他情況下,可能存在如圖6b所示的實施例,當對第(n+5)個封包進行編碼時,從相對於冗餘碼本1620b(與主要碼本1620不同)的不同碼本獲取第n個封包的冗餘資訊(冗餘資訊1612b)。需注意者,主幀1626被顯示為包括第i幀的索引C
0(i)、C
1(i)、C
2(i)、C
3(i),其中C
0是從高階碼本1622獲得的索引1623,C
1是從低階碼本1624獲得的第一低階索引1625,依此類推。在如圖6b所示的實施例中,冗餘幀C
0(i-5)(1612)可以由C’(i-5)取代。
如上所述,在其他情況下,可以將位元流1630傳送到一接收器。圖3b顯示一種可以在編碼器1600a或1600b中實現的技術的實施例,應用在位元流1630在網路1640中或更一般地在通訊頻道中傳送的情況下,於此,要寫入當前封包中的冗餘資訊的數量可以基於網路1640的狀態而變化。圖3b顯示可以檢測網路1640的狀態的檢測器1642,其可以測量例如傳輸的延遲(如由接收器提供的確收)、及/或可以測量由其他裝置同時傳輸的傳輸量、及/或可以由接收器確認的損壞的幀、或檢測或感測允許確定通訊頻道狀態的任何其他度量。控制器1644可以讀取網路1640的狀態1643,如圖所示,控制器1644被顯示為控制一開關1645,開關1645可以在允許和阻止至少一個低階索引1625的編碼之間進行選擇,但是這對高階索引1625的編碼沒有影響。例如,當網路1640的有效負載狀態低於預定閾值時,可以打開開關1645,使得當網路繁忙時,不存在對低階索引1625的編碼,同時至少一個高階索引1623仍然被寫入位元流1630中。如果網路(通訊頻道)1640的有效負載狀態低於預定閾值(意味著網路相對空閒),則關閉開關1645,使得低階索引1625可以被寫入位元流1630。
另外或替代地,控制器1644可以基於通訊頻道1640的有效負載狀態1643來施加一控制1645’,以控制當前封包與用以接收冗餘資訊1612或1612b的封包之間的偏移。因此,當前寫入的封包與用以提供冗餘資訊的封包之間的偏移可以根據有效負載動態地變化。參考圖3a所示,可能存在以下的情況,對第(n-4)個封包而不是第(n-5)個封包進行編碼以得到冗餘資訊,從而隨有效負載動態地改變偏移。在另一種情況下,控制1645’可以不基於(或不完全基於)網路1640的有效負載狀態1643,而是基於來自用戶的選擇或透過預選,舉例而言,如果網路擁塞,封包遺失率會提高,如果意味著更大的封包遺失突發,則可能需要增加偏移量;或者,可以透過在單一個第n個封包內添加具有2個不同偏移的2個冗餘資訊來新增另一層冗餘資訊,例如,第n個封包可以附加有第(n-5)個冗餘資訊和第(n-7)個冗餘資訊,然後,將以任何額外的外加位元率為代價來保護更多的位元流。
因此,編碼器可以至少根據例如通訊頻道的有效負載來計算當前封包與具有冗餘資訊的至少一個在前或在後封包之間的封包偏移量,以這樣的方式,通訊頻道中的有效負載越高、或通訊頻道中的錯誤率越高,封包偏移就越高,其中封包偏移可以利用信令方式存在於位元流中。
在多個實施例中,當前封包與具有冗餘資訊的至少一個在前或在後封包之間的封包偏移可以由編碼器至少根據設想的應用程式來定義。在多個實施例中,當前封包與具有冗餘資訊的至少一個在前或在後封包之間的封包偏移至少作為終端用戶提供的輸入的函數。
承上所述,現在可以看出,可以將冗餘資訊1612或1612b提供給位元流1630,這將有助於在封包遺失的情況下,利用寫入到不同的封包中的冗餘資訊1612或1612b來重建封包。
圖7顯示一種音訊產生器1700的實施例,其中音訊產生器1700可以轉換位元流1630,在一些實施例中,位元流1630可以是與如圖6a或圖6b所示的編碼器600a或600b產生的位元流相同。音訊產生器1700可以從位元流1630產生音訊訊號1724。需注意者,音訊訊號1724通常意味著輸入音訊訊號1602的可信任表示,例如為提供給編碼器1600a和1600b的音訊訊號1602,在此可以實現前向錯誤修正(FEC)。
本發明實施例可以實現於一音訊訊號表示解碼器1710(其可以是或也可以不是音訊產生器1700的一部分),音訊訊號表示解碼器1710可以對表示音訊訊號1602的音訊表示1720(隨後將轉換為音訊訊號1724)進行解碼。因此,在此將根據一些實施例解釋音訊訊號表示解碼器1710是如何構成的。首先,音訊訊號表示解碼器1710可以從位元流1630解碼音訊表示1720,位元流1630被分割為一序列之封包(如上所述),音訊訊號表示解碼器1710(或更具體為音訊產生器1700)可以包括一位元流讀取器1702(例如索引擷取器),位元流讀取器1702可以依序地讀取該序列之封包(其形成位元流1630),位元流讀取器1702可以從至少一個當前封包中提取該至少一個當前封包的至少一個索引1704(例如,多個索引)。根據至少一個當前封包,可以將具有至少一個在前或在續封包內之資訊的冗餘資訊1714提供給冗餘資訊儲存單元17100(見下文)。隨後可以為後續封包(在該封包被認為遺失的情況下)提供冗餘資訊1714作為冗餘資訊1712,請參閱下文。由位元流讀取器1702擷取的索引1704可以是由編碼器1600a或1600b插入位元流1630中的索引1626(1623、1625)或1623b,或可作為其表示。冗餘資訊1714可以是分別由編碼器1600a或1600b的冗餘資訊儲存器1610或1610b插入的冗餘資訊1612及/或1612b。
然後,一量化索引轉換器1718可以轉換由索引讀取器1702提取的索引1704。
音訊訊號表示解碼器1710(或具體為音訊產生器1700)可以包括封包遺失(PLC)控制器1706(其可作為FEC控制器操作)。封包遺失控制器1706可以確認至少一個當前封包是否被良好接收或是否被視為遺失,例如,封包遺失控制器可以對插入到與當前封包相關聯的位元流1630中的冗餘代碼執行語法檢查(或任何其他檢查,例如對語法冗餘檢查資訊)。封包遺失控制器1706因此可以區分當前封包被認為是正確接收的和當前封包被認為是遺失的。因此,封包遺失控制器1706的輸出1708可以稱為正確性資訊。在正確性資訊1708指示當前封包被認為是正確接收的情況下,則將從正確封包的索引解碼出代碼(張量);否則,在正確性資訊1708指示當前封包被視為遺失的情況下,則不解碼位元流的當前封包的索引,或至少完全不使用。如圖7的開關1716所示,開關1716連接量化索引轉換器1718(其用以輸出音訊訊號表示1720的轉換後的代碼),開關1716可以利用位元流讀取器1702取得當前封包的至少一個索引1704以作為引導,或是從冗餘資訊儲存單元(索引提供器)17100提供的冗餘資訊1712中取得。因此,當正確性資訊1708指示當前封包被認為是有效的(即正確的)時,則開關1716將位元流讀取器1702的輸出連接到量化索引轉換器1718的輸入。當正確性資訊1708指示當前封包被認為遺失時,則開關1716切換以連接量化索引轉換器1718的輸出1712。冗餘資訊儲存單元17100具有量化索引轉換器1718的輸入,冗餘資訊儲存單元17100的輸出1712是當前封包中的冗餘資訊(例如,1612、1612b),其是先前從另一個封包獲得的。
量化索引轉換器1718可將至少一個索引1704(或替代為冗餘資訊1712)轉換為一個代碼1720或代碼1720的一部分。轉換後的代碼可以是張量(例如向量,此時其至少應該是二維的)。在一些實施例中,如果可能的話,轉換後的代碼1720可以意味著是如圖6a和6b所示的音訊訊號表示1606的副本,音訊訊號表示1720(一序列之代碼,如張量)可以是音訊訊號表示解碼器1710的輸出,音訊訊號表示1720可以被輸入到用以產生音訊訊號1724的處理/渲染區塊1722中。
如果封包遺失控制器1706已經確認序列中的第一個封包是正確的,則冗餘資訊1714可以包括位元流1630中不同的第二個封包的一個索引(如1626、1623、1625、1623b),如果確認當前封包為遺失,則不將冗餘資訊1714提供給冗餘資訊儲存單元17100。
我們可能得到以下一序列的流程:
1. 位元流1630中的第一個封包被接收並且被封包遺失控制器1706確認為是正確的,正確性資訊1708指示當前封包是正確的。
2. 然後,開關1716將位元流讀取器1702的輸出(其為至少一個索引1704,表示圖6a、6b的至少一個索引1623、1625、1626、1623b)連接到量化索引轉換器1718。
3. 再者,位元流1630的第二個封包的至少一個冗餘資訊1714被儲存(例如儲存為1714)在冗餘資訊儲存單元17100中,冗餘資訊1714可以是由冗餘資訊儲存器1610或1610b提供至位元流讀取器1702的冗餘資訊1612或1612b。
4. 對於一個後續幀,如果封包遺失控制器1706偵測到格式不正確,且該封包被視為遺失時,則正確性資訊1708將指示該封包被視為遺失。
5. 然後,移動開關1716以將冗餘資訊儲存單元(索引預測器)17100的輸出1712連接至量化索引轉換器1718的輸入,此時輸入1714不會被提供給冗餘資訊儲存單元17100。
透過儲存冗餘資訊1714(如音訊訊號表示1606的張量的主要部分的索引或高階索引),使得有可能重建音訊訊號表示1606或至少其主要部分。
圖7也顯示了至少一個碼本1620,其可以是圖6a和6b中任一圖所示的至少一個碼本1620或1620a的副本,該至少一個碼本1620還可包括如圖6b所示的主要碼本1620a和至少一個冗餘碼本1620b。因此,可以利用相同的方式提供從碼本獲得的資訊,然而,值得注意的是,如圖6a和圖6b所示的編碼器中的碼本提供基於代碼的索引,而如圖7-8b的碼本提供基於索引的代碼。即使在這種情況下,也可以具有至少一個高階碼本1622及/或至少一個低階碼本1624。一般來說,冗餘資訊儲存單元所應用的技術與參照圖6a和6b所解釋的技術相同,因此這裡不再重複。應注意的是,音訊訊號表示解碼器1700的碼本通常與編碼器的碼本相同,以便允許音訊訊號表示1720的正確解碼。由於技術相同,相同的功能不再重複說明。
處理及/或渲染區塊1722可以用於例如處理及/或渲染由轉換後代碼1720表示的音訊訊號1724。
還應注意,在封包被認為遺失的情況下所使用的冗餘資訊1712可以是從相對於當前封包具有偏移的封包獲得的資訊,例如由如圖3b所示的控制1645'定義,可以例如在位元流1630中用信令要使用的偏移。
音訊訊號表示解碼器1710可以至少以通訊頻道的有效負載的函數來讀取指示當前封包與具有冗餘資訊的至少一個在前或在後封包之間的封包偏移的信令,以便將封包重構為冗餘資訊所引用的封包,並且儲存與冗餘資訊所引用的封包相關聯的冗餘資訊。
如圖7所示,假設冗餘資訊儲存單元17100是儲存多個索引的索引提供器,然而,可以有一種變化態樣,其中冗餘代碼已經由量化索引轉換器1718獲得,並且因此已經被轉換儲存在冗餘資訊儲存單元17100中。在這種情況下,當如果需要冗餘資訊1714時(因為當前封包被認為遺失),則可以繞過量化索引轉換器1718,並且冗餘資訊儲存單元17100直接提供音訊訊號表示1720的一部分。
圖8a顯示一種音訊產生器1800的實施例,在本實施例中,其稱為音訊產生器1800a。音訊產生器1800a可以包括音訊訊號表示解碼器1810(在本實施例中稱為1810a),音訊訊號表示解碼器1810a可以獨立於音訊訊號產生器1800a。音訊產生器1800a可以從位元流1830產生至少一個音訊訊號1824a,音訊訊號表示解碼器1810a可以從位元流1830產生音訊訊號表示1820a,音訊訊號表示1820a可以被輸入至音訊產生器1800a的處理及/或渲染區塊1822a。由於音訊訊號表示解碼器1810a可以獨立於處理和/或渲染區塊1822a,因此在此將獨立於處理及/或渲染區塊1822a來討論音訊訊號表示解碼器1800a。
在一些實施例中,位元流1830可以是與上面討論的位元流1630相同,例如其可以由編碼器1600a及/或由編碼器1600b產生及/或保持輸入到音訊訊號表示解碼器1710。然而,在一些實施例中,位元流1830可以與位元流1630不同,於此並非嚴格需要將冗餘資訊1612寫入位元流1830。
音訊訊號表示1810a可以包括位元流讀取器(或索引提取器)1802a,該位元流讀取器1802a可以是與如圖7所示的位元流讀取器1702的一些實施例相同的類型。然而,在本實施例中,不需要讀取冗餘資訊(在一些情況下存在冗餘資訊並且在一些情況下不存在冗餘資訊,但在某些實施例中沒有必要擁有冗餘資訊)。位元流讀取器1802a可以輸出提取的索引1804a,音訊訊號表示解碼器1810a可以包括封包遺失控制器1806a,其可以是與封包遺失控制器1706相同的類型。如上所述,封包遺失控制器1806a可以進行校驗操作(例如,基於循環冗餘編碼(CRC)、或者基於類似的技術),來檢查位元流1830中接收到的封包的格式是否被認為是正確的或是否被認為是遺失的。因此,封包遺失控制器1806a的輸出可以是正確性資訊1808a(其可以是與上面討論的正確性資訊1708相同的類型)。音訊訊號表示解碼器1810a可以包括量化索引轉換器1818a,量化索引轉換器1818a可以輸出例如來自索引1804a的轉換後代碼1820a,轉換後的代碼1820a可以是與前述之轉換後的代碼1720相同的類型(例如,其可以是張量,或者在一些情況下是特定向量,例如n×1向量,其中n>1),及/或可以是,在一些實施例中,如前述如圖6a和6b的音訊訊號表示1606的表示。轉換後的代碼1820a可以是音訊產生器1800a的輸出,至少對於從具有正確格式(如由封包遺失控制器1806a識別的)的位元流之封包中提取的索引轉換的那些代碼而言,如果封包遺失控制器1806a已經確認當前封包具有不正確的格式(並且因此被認為是遺失的),則封包遺失控制器1806a(例如,通過正確性資訊1808a)可以導致跳過從當前封包所提取的索引1804a的轉換動作。如圖8a所示,這由開關1816a表示(藉由正確性資訊1808a控制),其可以選擇性地防止量化索引轉換器1818a從位元流讀取器1802a接收索引。在確認當前封包遺失的情況下,可以使用可學習代碼預測器1810aa(圖8a顯示基於正確性資訊1808a提供的可學習代碼預測器的輸出),可學習代碼預測器1810aa的輸出可以是預測代碼1811a,因此,當確認當前封包遺失時,可以向處理及/或渲染區塊1822a提供預測代碼1811a,而不是轉換後的代碼1820a,或更一般地對於特定封包表示的音訊訊號表示解碼器1810a的輸出。
音訊產生器1800a和音訊訊號表示解碼器1810b的一種變化態樣為如圖8b所示的音訊訊號表示1800b(也統稱為音訊產生器1800)和音訊訊號表示解碼器1810b(也統稱為1810),於此,與圖8a中相同的元件採用相同的數字表示,但其末碼由“a”改為“b”。如圖所示,封包遺失控制器1806b(因此可以類似於封包遺失控制器1806a)可以輸出關於位元流1830的當前封包的格式的正確性資訊1808b,位元流讀取器(索引提取器)1802b可以是與圖8a的位元流讀取器(索引提取器)1802a相同的類型,並且可以輸出提取的索引1804b(其可以類似於圖8的提取的索引1804a)。因此,當封包遺失控制器1806b已經確認當前封包是正確的時,可以向量化索引轉換器1818b輸入所提取的索引1804b,或者當封包遺失控制器1806b已經確認當前封包被視為遺失時,可以向量化索引轉換器1818b輸入預測索引1811b。音訊訊號表示解碼器1810b和音訊訊號表示解碼器1810a之間的主要區別在於:在本實施例中,索引1816b'由可學習索引預測器1810bb預測(於此不需要可學習代碼預測器1810aa),但是存在的是可學習索引預測器1810bb,其可與提取的索引1804b一起輸入,並且隨後提取的索引可用於當封包被認為遺失時對在後及/或在前索引執行預測(1811b)(例如通過正確性資訊1808b)。這透過開關1816b來表示,開關1816b將來自位元流讀取器1802的輸出1804b(提取的索引)導向量化索引1818b以及可學習索引預測器1810bb的輸出1811b以及量化索引轉換器1818b的輸入。
量化索引轉換器1818b可以是與圖8a的量化索引轉換器1818a相同的類型。透過比較圖8b與圖8a可以理解,如果封包為有效時,則將代碼1804b輸入量化索引轉換器1818b,如果封包被認為遺失,則將編碼預測索引1811b輸入量化索引轉換器1818b。
如圖8a和8b所示的兩個實施例可以利用碼本1820。在一些實施例中,碼本1820可以是碼本1620、1620b、1620a、1622、1624等其中之一或其副本,碼本1820可以將代碼1826(如1626、1623、1625、1623b)提供給可學習代碼預測器1810aa、量化索引轉換器1818a或1818b、及/或可學習索引預測器1810bb。上述任何實施例也可以應用於實現如圖8a或8b所示的碼本1820。
舉例而言,可能存在高階碼本和低階碼本(這裡為了簡單起見,也指示為1622和1624)。因此,在圖8a的實施例中,可學習代碼預測器1810aa可以從索引(取自碼本1820)預測出代碼1811a。在存在高階碼本和低階碼本的情況下,在一些實施例中,碼本1820可以僅具有高階碼本(例如1622),從而僅向可學習代碼預測器1810提供高階索引1623,因此,可學習代碼預測器1810aa處的預測可以僅限於高階碼本(例如,僅限於最高階碼本)。在一些實施例中,可學習代碼預測器1810aa可以從當前轉換的代碼1820a學習預測,以便基於正確封包的在前轉換來執行預測。這是從量化索引轉換器1818a中的量化輸出的轉換器代碼1820a到可學習代碼預測器1810aa的箭頭1820a'的方向。
可以在音訊訊號表示解碼器1810b中執行類似的策略,其中可學習索引預測器1810bb可以被輸入至少一個代碼1820a(其可以與圖8a所示相同,並且可以是1620、1620a、1620b和1624等中的任一個)。於此,碼本1820可以提供索引給量化索引轉換器1818b(用於校正從正確封包提取的索引1804b)及/或可學習索引預測器1810bb(例如用於當封包被確認為不正確時的預測索引1811b)。如圖8b所示,箭頭1816b’將提取的索引1816b(當正確時)與可學習索引預測器1810bb的輸入連接,使得可學習索引預測器1810bb可以學習正確的索引。當然,當由可學習索引預測器1810bb預測索引時,不需要向可學習索引預測器1810提供輸入1816b’。
如本文所說明的,在分割量化或殘差量化的情況下可以使用高階碼本與低階碼本。例如,一基本碼本(高階)可以用於解碼主要部分代碼(或主子碼)的主要部分,一低階碼本可以用於解碼代碼的剩餘部分(或低階子代碼),然後,可以將代碼的主要部分與代碼的剩餘部分相加(例如透過相加程序)、並將不同的子代碼彼此結合,以獲得轉換後的代碼。
在某些情況下,不同的子代碼沒有不同的排序,但仍然有不同的碼本。
圖2顯示一種可學習代碼預測器1200的實施例,其可以例如是如圖8a所示的音訊訊號表示解碼器1810a的可學習代碼預測器1810aa。圖2顯示一序列之在前轉換的代碼1202,其可以是由量化索引轉換器1818a轉換的音訊訊號表示1820a的在前轉換的代碼1820a’部分。在前轉換的代碼1202(其可以是圖8a所示的代碼1820a’)在此按序列示出。如果當前代碼是該序列的第n個(因此被認為是在時間t=n處),則在前預測的代碼可能是:
● 第0個在前轉換的代碼1820a’0(對於時間t=0的封包),
● 第一個在前轉換的代碼1820a’1(在時間t=1時從封包轉換而來),
● 第二個轉換後代碼1820a’2(在時間t=2時的從封包轉換而來),
● …
● 當前(最後)轉換的代碼1820a’n(從時間t=n-1時的從封包轉換而來)。
為了預測當前的第n個代碼,可以獲得預測作為當前代碼(t=n)的估計代碼1811an,因此也可以在先前的時間段中(t=3、t=2、t=1)獲得對於在前的預測代碼(1811a3、1811a2和1811a1)。應該注意的是,在一些實施例中,序列可以被限制為預定數量的先前時刻(例如,最後5個、或10個、或20個封包)。
可學習代碼預測器1200(1810aa)的輸出可以是一序列的預測代碼1204(其可以是例如由圖8a的可學習代碼預測器1810aa預測的預測代碼1811a)。如圖所示,可學習代碼預測器1200(1810aa)可以包括至少一個可學習預測器層,至少一個可學習預測器層可以包括至少一個循環可學習層(例如循環神經網路),至少一個可學習預測器層可以包括至少一個門控循環單元。更一般地,音訊訊號表示解碼器1800可以是自動回歸的。
至少一個可學習預測器層可以沿著依序的多個預測器層實例、沿著代碼被順序預測的一序列之封包被迭代地實例化。可學習預測器層實例(統稱為1210)的實施例包括:
l 用於預測第一個代碼1811a1(t=1)的可學習預測器層實例12101,
l 用於預測第二個代碼1811a2(t=2)的可學習預測器層實例12102,
l 用於預測第三個代碼1811a3(t=3)的可學習預測器層實例12103,
l …
l 用於預測當前第n個代碼1811an(t=n)的當前(最後)可學習預測器層實例1210n。
在實施例中,可學習預測器層實例(12101、12102、12103、…、1210n)意味著針對必須預測的一序列之代碼1811a1、1811a2、1811a3、…、1811an依序地及/或迭代地執行,為此,在用於預測代碼1811an的當前可學習預測器層實例1210n之後,將存在用於預測後續代碼1811a(n+1)的一個新的可學習預測器層實例1210(n+1)。
如圖8a所示,每個可學習預測器層實例1210可以具有一輸入1211,其可選擇為:
● 至少一個(例如緊鄰的)在前預測代碼(如1811a1,提供作為從第一個實例12101到第二的實例12102的輸入1220'0;1811a2,提供作為從第二個實例12102到第三個實例12103的輸入1220'1;…;1811a(n-1),提供作為從第(n-1)個實例(未示出)到當前第n個實例1210n的輸入1220'(n-1))
● 至少一個(例如緊鄰的)在前轉換代碼(如1820a'0,用於第一個實例12101;1820a'1,提供給第二個實例12102;…;1820a'(n-1),提供給當前第n個實例1210n)。
如圖2所示,每個可學習預測器層實例1210可以包括至少一個(例如兩個)具有狀態的可學習層(例如1212、1214),狀態統稱為1222,於此,第一個可學習層1212的狀態1以12221表示,第二個可學習層1214的狀態2以12222表示。
可以從先前的實例(例如緊接著的後續實例)到後續的實例(例如直到當前實例1210n)來提供狀態。例如,實例12101的狀態1222被提供給實例12102,於此,實例12101的第一層1212的狀態12221被提供給緊接著的後續實例12102的第一層1212),實例12101的第二層1214的狀態12222被提供給緊接著的實例12102的第二層1214。類似地,實例12102(特別是層1212和1214)的預測器的狀態1222被提供給實例12103(特別是層1212和1214)。類似地,當前實例1210n接收來自先前實例(圖2中未示出)的狀態1222。因此,當預測代碼時,是透過可學習的預測器層實例來預測的,該實例具有考慮先前實例(例如緊鄰的先前實例)的狀態。例如,當前第n個預測代碼1811an是透過當前第n個實例1210n的層1212和1214獲得的,考慮到緊接在前的迭代1210(n-1)的狀態1222,特別是緊接在前的實例1210(n-1))的層1212和1214的狀態1222。
為了預測當前代碼(例如1811an),當前可學習可預測層實例1210n經由輸入1211接收選自以下項目:
● 當認為至少一個在前封包被良好接收時,至少一個在前轉換代碼1820’a(n-1) (從而啟動圖8a中的連接1820a’);或者
● 當至少一個在前封包被認為遺失時,至少一個在前預測代碼1220'(n-1)。
然而,為了預測當前代碼1811an,最後一個可學習預測器層實例1210n在至少一個先前封包被認為是被良好接收的情況下以及在至少一個在前封包被認為遺失的情況下,從至少一個先前的(例如緊接在前的)實例接收狀態1222(12221、12222)。
因此,可以理解,每個實例1210在其輸入1211處具有先前轉換的代碼1202(1820a',諸如1820a'0、1820a'1、1820a'2、1820a'(n-1))或先前預測的代碼(如1811a1作為1220'0提供給實例12102的輸入1211,1811a2作為1220'提供給實例12103的輸入1211,以及1220'(n-1)作為實例12103的輸入1211提供給當前實例1210n)。因此,對於每個實例1210的每個輸入1211,在前修正代碼1820a'或在前預測代碼1204(1811a)被提供作為每個實例的輸入。在本實施例中,這裡主要想像的是每個持續時間接收來自緊鄰的先前實例的代碼和狀態,即使對於不是緊鄰的先前實例(迭代)的先前迭代是可能進行的迭代。因此,當預測當前代碼(例如1811an)時,會考慮先前轉換的代碼(從正確的封包獲得),並且如果某些先前接收到的封包不正確,則會考慮先前預測的代碼,在任何情況下,狀態1222可以從每個實例提供給下一個實例(例如,緊接著的下一個實例),使得無論前一個封包是否被修正,某些東西都獨立地繼承先前的封包。
讓我們考慮這樣的情況:為了預測當前第n個代碼1811an,量化索引轉換器1818a預先轉換緊接在前的代碼n-1(因為緊接在前的封包已被正確接收)。在這種情況下,為了預測當前第n個代碼,可學習預測器層實例1210n不被輸入(潛在輸入1211處)與由前一個實例輸出的緊鄰的在前預測代碼1120'(n-1)一起輸入,而是被輸入緊接在前的轉換代碼1820a'(n-1)(由轉換器1818a輸出)。然而,儘管如此,還是執行了用於預測第(n-1)個代碼的實例1210(n-1)。人們可以想像,由於第(n-1)個代碼是從正確的封包中取出的,因此沒有必要提供從第(n-1)個實例1210(n-1)到當前第n個實例1210n的狀態1222:這是因為人們可以想像,憑藉緊接在前的第(n-1)個代碼1820a'(n-1)從正確的封包轉換而來,將沒有必要繼承來自先前的實例(例如1210(n-1))的狀態1222。然而,應當理解,透過將狀態1222從先前實例1210(n-1)傳遞到當前實例1210n(即使當在前代碼取自正確的封包時),來自更多在前實例的某些東西(例如,1210( n-2)、1210(n-3)等)可以傳遞到當前實例1210n,更重要的是,來自前面的第(n-2)個、第(n-3)個等的代碼將被第n個代碼繼承。已經理解,為了產生音訊訊號表示1820a的至少一部分,預測還可以有利地不僅考慮緊接在前的代碼(轉換的或預測的),而且考慮一些更多的在前代碼,這些代碼是在緊接在前的代碼之前。以這種方式,還可以從不是緊接在前的代碼的在前代碼中獲得狀態,因此,實現了可靠性的提昇。
例如,讓我們假設:
● 第0個和第1個在前轉換代碼(1820a'0和1820a'1)是取自正確接收的封包,因此實例12101和12102分別向緊接著的實例12102和12103提供正確的狀態1222。
● 第2、3、…(n-1)個代碼是取自損壞的封包,因此第2、3、…(n-1)個實例12103、12104…1210(n-1)(無法利用轉換後的代碼1810'2、1820'3、1820'(n-2)被輸入,因為其是從不正確的封包中取出的,但其應分別輸入在前預測的代碼1220'1、1220'1、1220'(n-2))分別向緊接著的實例12103、12104、…1210n提供狀態1222。
初見的印象是,人們可能會認為提供給實例12103、12104、…1210n的這些狀態是無效的,因為其是基於預測,而不是基於校正的資料。然而,已經理解的是,以這種方式,實例12103、12104…1210(n-1)儘管與損壞的封包相關聯,但是仍然可以提供(至隨後的實例)具有良好正確性的狀態,因為儘管如此,該狀態在一定程度上繼承了先前正確的狀態。
每個可學習預測器層實例1210n可至少包括可學習卷積單元1216。可以得到的是,當前可學習層1210n的至少一個循環單元1212、1214被輸入來自至少一個在前的可學習預測器層實例的對應的至少一個循環單元1212、1214的狀態,並且將狀態輸出到至少一個後續可學習預測器層實例的對應的至少一個循環單元1212、1214。
在一些實施例中,每個當前可學習預測器層實例具有一系列可學習層,例如,該系列的每個可學習層(除了最後一層)都將處理後的代碼輸出到該系列的緊接著的後續各層,並且該系列的最後一個可學習層將代碼輸出到緊接著的後續可學習預測器層實例,例如,對於每個可學習預測器層實例,除了最後一個可學習預測器層實例之外,該系列中的每個可學習層將其狀態輸出到緊接著的可學習預測器層實例的相應可學習層。
在一些實施例中,每個可學習預測器層實例,一系列可學習層包括至少一個降維可學習層(1214)(如GRU2)和在至少一個降維可學習層之後的至少一個增維可學習層1216(如FC),例如,使得可學習預測器層實例的輸出具有與可學習預測器層實例的輸入相同的維度。
在一些實施例中(如圖2),至少一個降維可學習層1214(如GRU2)包括至少一個具有狀態的可學習層,例如,於此,除了最後一個可學習預測器層實例之外,每個可學習預測器層實例將至少一個降維可學習層的狀態提供給緊接著的後續可學習預測器層的至少一個降維可學習層實例。
在一些實施例中(如圖2),至少一個增維可學習層(1216)(如FC)包括至少一個沒有狀態的可學習層,例如,於此,沒有預測器層實例將至少一個增維可學習層的狀態提供給緊接著的後續可學習預測器層實例的至少一個增維可學習層。
在一些實施例中(如圖2),一系列可學習層是門控的。
在一些實施例中(如圖2),其中一系列可學習層透過softmax激活函數進行門控。
以下說明了一系列可學習預測器層實例(如1210n)的可能序列:
- 在輸入(潛在輸入)1211處,可能有在前轉換代碼1202、1820a'(例如1820a'(n-1)),或在前預測代碼1204、1811a(例如1220'(n-1))。
- 第一循環單元(如迭代循環單元1212),其可將來自第一維度(如1、1、256)的潛在輸入1211轉換至第二維度(至相同維度),以獲得輸出1215,輸出1215從維度1, 1, 256減少到第二維度1, 1, 128。
在一些實施例中,定義了一個門控單元(例如,從前一個實例中輸入狀態1、12222),其具有
- 卷積層1216(例如具有狀態的層),其可以具有輸入值1215和具有增加維度(1、1、256)的輸出值1217。
- 激活函數1218(例如softmax),以便到達估計的潛在值1220,該估計的潛在值1220將被用作當前封包的預測代碼(例如1811an),並且被提供給緊隨其後的可學習預測器層實例緊接著要預測的後續代碼。
當然,也可以將狀態從循環層1212和1214提供給緊接著的可學習可預測層實例的對應循環層。
圖1a顯示一種編碼器1100的實施例,編碼器1100可以是編碼器1600(諸如上面討論的1600a和1600b)其中之一,編碼器1600可以包含例如可學習音訊訊號表示產生器(這裡指示為「NESC編碼器」)1104(其可例如由可學習音訊訊號表示產生器1604實例)。殘差量化步驟的實施例可以是例如上面討論的或針對圖6a和圖6b的量化器1608,其可以利用至少一個碼本(例如,基本碼本1122,其可以是上述的基本碼本1622)、第一階碼本1124(其可以是上面的低階碼本1624)、甚至更低階的碼本1224a和最低階碼本1124b)。位元流被指示為位元流1630,但在一些實施例中也可以是位元流1830。
解碼器用1300指示並且可以是上面討論的解碼器1600和1700其中之一,結果可以是呈現的音訊訊號1724。
圖1b顯示出了圖2的更概念性的實施例。於此,可以看到碼本1820、轉換後的代碼1810'(其可以透過1820a'提供給可學習代碼預測器1820aa)、可學習代碼預測器1820aa、可學習層1212、1214(其為門控循環單元)、以及卷積層1216。
圖7至圖8b所示的音訊訊號表示解碼器1710、1810a、1810b的實施例不一定是彼此脫節。例如,音訊訊號表示解碼器可以同時體現音訊訊號表示解碼器1710和1810a兩者,這是因為音訊訊號表示解碼器可以包括冗餘資訊儲存單元17100(例如,用於儲存來自位元流1630的冗餘資訊1714)和如圖8a中的可學習代碼預測器1818aa(例如,當還沒有儲存冗餘資訊時,用於從位元流1630預測代碼1811a,如圖8a和圖2所示)。
需注意者,圖7-8b的實施例可以混合在一起。例如,音訊訊號表示解碼器可以具有圖8a的可學習代碼預測器1810aa和圖7的冗餘資訊儲存單元17100兩者,在這種情況下,可學習代碼預測器1810aa可以只在沒有從冗餘資訊儲存單元17100處取得冗餘資訊的情況下被啟動。
例如,在至少一個當前封包被認為遺失的情況下,可以搜尋冗餘資訊儲存單元17100,並且在檢索到涉及至少一個當前封包的冗餘資訊的情況下,從參考當前封包的冗餘資訊中檢索至少一個索引,並且量化索引轉換器將來自至少一個碼本的至少一個檢索到的索引轉換為替代代碼。因此,處理區塊可以透過將至少一個替代代碼轉換到音訊訊號的至少一部分上來產生音訊訊號的至少一部分。否則,在沒有檢索到冗餘資訊的情況下,則由可學習代碼預測器1810aa啟動預測,並且預測的代碼被用作音訊訊號表示1820a的代碼。
例如,可以透過實現具有圖8b的可學習索引預測器1810bb和圖7的冗餘資訊儲存單元17100的音訊訊號表示解碼器來提供相同的內容。在本實施例中,將僅在冗餘資訊儲存單元17100中沒有檢索到冗餘資訊的情況下,進行索引預測。在上述實施例中,經常提到冗餘資訊被寫入位元流中的事實。在一些實施例中(例如,在實現分割量化或殘差量化的一些實施例中),編碼器1600a或1600b可以僅將最高階索引作為冗餘資訊寫入位元流中,而可以跳過較低階索引。以這種方式,音訊訊號表示解碼器(例如,1710、1810a、1810b)可以儲存冗餘資訊並使用它,如此可以減少有效負載,但仍將達到可接受的可靠性程度。
另外或可替代地,例如,在圖2的實施例中,可以使用較高排序的索引(例如,作為在前轉換代碼1202,諸如1820a'0…1820a'n),因為不預測較低階的索引,因此減少了可學習預測器1200(1810a)的計算工作量。
請注意,可學習預測器(1200、1810a、1810b)可以透過從在前及/或在後的封包順序預測該些預測的當前代碼或相應的當前索引,並且透過比較預測的當前代碼或根據預測索引獲得的當前代碼來訓練,利用從已經良好接收的封包轉換而來的轉換代碼,以學習至少一個可學習預測器層的可學習參數,該參數最小化預測當前代碼相對於從具有正確格式的封包轉換而來的轉換代碼的誤差。
圖9顯示出音訊產生器10(其可以是1700、1800a、1800b其中之一)的實施例。在本實施例中,我們可能會認識到:
● 音訊產生器10,其可以是音訊產生器1700及/或1800a的一實施例
● 音訊訊號表示解碼器1710或1810a
● 碼本1820(可以是碼本1620、1622、1624、1620b、1620a、1122、1124、1124a、1124b等其中之一)
● 圖8a的可學習代碼預測器1810aa(然而,其也可以是如圖8b或7的實施例中實現的)
● 圖7的冗餘資訊儲存單元17100(然而,其也可以是如圖8a或8b的實施例中實現的)
● 位元流1630、1830(對於所有實施例,也以3表示)
● 量化索引轉換器1718、1818a、1818b(對於所有實施例,也以313表示)
● 解碼的音訊訊號表示(代碼、張量、向量)1820a、1820b、1720(對於所有實施例,也以112表示)
● 處理及/或渲染區塊1722、1822a、1822b
● 輸出音訊訊號1724、1824a、1824b(所有實施例,也以16表示)。
重要的是要注意圖9-13的實施例的技術不是必須實現的,並且存在其他可以實現的技術。
位元流3(例如1630或1830)(在輸入中獲得)可以包括幀(例如編碼為索引,其例如可由編碼器1600a或1600b編碼),可以得到輸出音訊訊號16(例如1724、1824a、1824b其中之一)。音訊產生器10(1700、1800a、1800b)可以包含第一資料提供器702,第一資料提供器702可以被輸入一輸入訊號(輸入資料)14,例如可以來自內部來源(如雜訊產生器或記憶體單元),或來自外部來源(如外部雜訊產生器或外部儲存單元),或甚至從位元流3獲得的資料。輸入訊號14可以是雜訊,例如白噪音或確定性值(例如常數)。輸入訊號14可以具有多個通道(例如128個通道,但是其他數量的通道也是可能的,例如大於64的數量)。第一資料提供器702可以輸出第一資料15,第一資料15可以是雜訊,或是取自雜訊。第一資料15可以被輸入到至少一個第一處理區塊50(40)中。第一資料15可以與輸出音訊訊號16(例如1724、1824a、1824b)無關,例如,當從雜訊中取得時,其可以對應於輸入訊號14。至少一個第一處理區塊50(40)可以調節第一資料15以獲得第一輸出資料69,例如透過處理位元流3(例如1630或1830)來取得調節。第一輸出資料69可以提供給第二處理區塊45,從第二處理區塊45,可以得到音訊訊號16(例如1724、1824a、1824b)(例如可透過PQMF合成)。第一輸出資料69可以處於多個通道。第一輸出資料69可以提供給第二處理區塊45,第二處理區塊45可以組合第一輸出資料69的多個通道,從而在一個訊號通道中(例如,在PQMF合成之後)提供輸出音訊訊號16(例如1724、1824a、1824b),例如在圖4和圖10中以110表示,但在圖9中未示出。
如圖9所示,在逐幀分支10a'中,可以將索引提供給量化索引轉換器313(其可以是1718、1818a、1818b其中之一)以獲得代碼(例如,向量或更通常為張量)112(例如為1704、1804a、1804b中的任一個)。代碼112(1704、1804a、1804b)可以是多維的(例如,二維、三維等),並且在此可以被理解為具有與以下格式相同的格式(或類似或相似的格式):如圖6a或圖6b中的音訊訊號表示產生器1604輸出的音訊訊號表示。因此,量化索引轉換器313(1718、1818a、1818b)可以被理解為執行圖6a和6b的量化器1608的逆操作。如上所述,量化索引轉換器313(1718、1818a、1818b)可以連接到可學習碼本(例如1820、1620、1620a、1620b、1624等),例如針對圖7-8b所討論的。量化索引轉換器313(1718、1818a、1818b)可以與量化器一起訓練,並且更一般地,與編碼器1600a、1600b及/或音訊產生器10(1700、1800a、1800b)的其他元件一起訓練。量化索引轉換器313(1718、1818a、1818b)可以以逐幀的方式操作,例如,透過考慮為每個新幀生成一個新索引。因此,每個代碼(例如向量或更通常為張量)112(1704、1804a、1804b)具有與量化的每個潛在表示相同的結構,無需共享完全相同的值,而是共享其近似值。
可以針對每個樣本更新逐樣本分支10b’,例如,以輸出取樣率及/或對於每個樣本以比最終輸出取樣率更低的取樣率,例如使用雜訊14或從外部或內部來源取得的另一個輸入。
還應注意的是,位元流3(例如1630或1830)在這裡被認為是對單聲道訊號進行編碼,並且輸出音訊訊號16(例如1724、1824a、1824b),而原始音訊訊號1602也被認為是單聲道訊號。在立體聲訊號或多聲道訊號(例如揚聲器訊號或高保真度立體聲複製訊號)的情況下,則針對每個音訊聲道重複此處的所有技術(在立體聲情況下,有兩個輸入音訊聲道1、兩個輸出音訊聲道16等)。
「聲道」在此在卷積神經網路的脈絡中被理解,根據該聲道,訊號被視為具有至少兩個維度的活化圖:多個樣本(例如,在橫座標維度,或例如時間軸);以及多個聲道(例如,在縱座標方向上,或例如在頻率軸上)。
第一處理區塊40可以像調節網路(例如調節神經網路)一樣操作,為其提供來自位元流3(例如1630或1830)的資料(例如代碼向量或更通常為張量112),以產生修改輸入資料14(輸入訊號)。輸入資料(輸入訊號)14(在其任何演進中)將經歷若干處理,以達到輸出音訊訊號16(例如1724、1824a、1824b),其設計為原始輸入的音訊訊號1的版本。輸入資料(輸入訊號)14及其後續處理版本這兩個調節都可以表示為受可學習層(例如,音訊訊號14)影響的活化圖,例如透過卷積。值得注意的是,在其向語音(例如1724、1824a、1824b)或更通常地向生成的音訊訊號16演進的過程中,訊號可以經歷增加取樣(例如從一個樣本49到多個樣本,例如數千個樣本(如圖10),但其通道47的數量可以減少(例如從64或128個通道減少到單一通道)。
第一資料15可以例如從輸入(例如雜訊或來自外部訊號的訊號)或從其他內部或外部來源取得(例如逐樣本分支10b’)。第一資料15可以被認為是第一處理區塊40的輸入並且可以是輸入訊號14的演變(或可以是輸入訊號14)。在調節神經網路(或更通常為調節可學習區塊或層)的背景下,第一資料15可以被認為是潛在訊號或在前訊號。基本上,根據第一處理區塊40設定的調節來修改第一資料15以獲得第一輸出資料69。第一資料15可以在多個通道中,例如在一個樣本中。而且,提供給第一處理區塊40的第一資料15可以具有單樣本分辨率,但是在多個通道中。多個通道可以形成一組參數,其可以與位元流3(例如1630或1830)中編碼的編碼參數相關聯。然而,一般而言,在第一處理區塊40中的處理期間,每幀的樣本數量從第一數量增加到更高的第二數量(即,位元率從第一位元率增加到更高第二位元率)。另一方面,通道的數量可以從第一通道數量減少到較少的第二通道數量。第一處理區塊中使用的調節(其將在下面詳細討論)可以用74和75來指示,並且由目標資料12生成,目標資料12又從位元流3(例如1630或1830)獲得的目標資料12生成。將顯示的是,調節(調節特徵參數)74和75及/或目標資料12也可以經歷增加取樣,以符合(例如,適應)目標資料12的版本的維度。提供第一資料15(來自內部來源、外部來源、位元流3(例如1630或1830)等)的在此稱為第一資料提供器702。
從圖9可以看出,第一處理區塊40可以包括預調節可學習層710,其可以是或包括循環可學習層,例如循環可學習神經網絡,如GRU。預調節可學習層710可以產生每個幀的目標資料12。目標資料12可以是至少二維的(例如多維):第二維度中的每個幀可以有多個樣本,並且第一維度中的每個幀可以有多個通道。在一些實施例中,目標資料12可以是頻譜圖的形式,其可以是梅爾頻譜圖,例如在頻率尺度不均勻及/或受感知原則驅動的情況下。在與要饋送的調節可學習層相對應的取樣率與幀率不同的情況下,目標資料12對於同一幀的所有樣本可以是相同的,例如在一層取樣率。另外,還可以應用另一種增加取樣策略。目標資料12可以提供給至少一個調節可學習層,其在此被指示為具有層71、72、73(也參見圖12以及下文)。調節可學習層71、72、73可以產生調節(其中一些可以被指示為β和γ、或數字74和75),其也被稱為要應用的調節特徵參數到第一資料12,以及從第一資料導出的任何增加取樣資料。調節可學習層71、72、73可以是具有多個通道和每個幀的多個樣本的矩陣的形式。第一處理區塊40可以包括去歸一化(或樣式元件)區塊77。例如,樣式元件77可以將調節特徵參數74和75應用到第一資料15。在一實施例中,可以是第一資料的值與調節β(可以作為偏移操作)、再加上調節γ(可以作為乘數操作)的逐元素乘積。樣式元件77可以逐個樣本產生第一輸出資料69。
解碼器(音訊產生器)10(1700、1800a、1800b)可以包含第二處理區塊45。第二處理區塊45可以組合第一輸出資料69的多個通道,以獲得輸出音訊訊號16(例如1724、1824a、1824b)(或其前驅音訊訊號44')。
現在主要參考圖11,位元流3(例如1630或1830)可以被細分為多個幀,然而這些幀以索引的形式(例如從量化器獲得)被編碼。從位元流3(例如1630或1830)的索引,透過量化索引轉換器313(1810a、1810b、1718)獲得代碼(例如標量、向量或更通常為張量)112。第一和第二維度在圖11的代碼112中示出(可以存在其他維度)。每個幀在橫座標方向(第一幀內維度)被細分為多個樣本。不同的術語可以是橫座標方向(第一方向)的「幀索引」和「特徵圖深度」、「潛在維度或編碼參數維度」。在縱座標方向(第二幀內維度)上,提供了多個通道。代碼112(1820a、1820b、1720)可以由預調節可學習層710(例如,循環可學習層)使用來產生目標資料12,目標資料12也可以是至少二維的(例如,多維的),例如頻譜圖的形式(例如,梅爾頻譜圖)。每個目標資料12可以表示一個單一幀,並且幀序列可以沿著第一幀內維度在橫坐標方向(從左到右)上隨時間演變。對於每個幀,多個通道可以位於縱座標方向(第二幀內維度)。例如,不同的係數將出現在與頻帶相關聯的係數相關聯的每列的不同條目中。調節可學習層71、72、73生成特徵參數74、75(β和γ),β和γ的橫座標(第二幀內維度)與同一幀的不同樣本相關聯,而縱座標(第一幀內維度)與不同通道相關聯。並行地,第一資料提供器702可以提供第一資料15。第一資料15可以針對每個樣本產生並且可以具有許多通道。在樣式元件77處(並且更通常地在第一調節區塊40處),調節特徵參數β和γ(74、75)可以被應用到第一資料15。例如,逐個元素相乘可以在樣式調節74、75(調節特徵參數)的列和第一資料15或其演變之間執行。將表明者,該過程可以重複多次。
從上面可以清楚地看出,由第一處理區塊40產生的第一輸出資料69可以作為二維矩陣(或甚至具有多於二維的張量)來獲得,其中橫座標為樣本(第一幀內維度)且通道為通道縱座標(第二幀內維度)。透過第二處理區塊45,可以產生具有一個單通道和多個樣本(例如,具有與輸入音訊訊號類似的形狀)的音訊訊號16,特別是在時域中。更通常地,在第二處理區塊45處,第一輸出資料69的每幀樣本數量(位元率)可以從每幀樣本的第二數量(第二位元率)演變為每幀樣本的第三數量(第三位元率),其高於每幀的第二樣本數(第二位元率)。另一方面,第一輸出資料69的通道數量可以從第二通道數量演變成小於第二通道數量的第三通道數。換句話說,輸出音訊訊號16(例如1724、1824a、1824b)的位元率(第三位元率)可以高於第一資料15的位元率(第一位元率)和輸出音訊訊號16的位元率(第二位元率),第一輸出資料69的通道數(例如,1724、1824a、1824b)可以小於第一資料15的通道數(第一通道數)和第一輸出資料69的通道數(第二通道數),而輸出音訊訊號16(例如1724、1824a、1824b)的通道數量可以低於第一資料15的通道數量(第一通道數量)和第一輸出資料69的通道數量(第二通道數量)。
透過將當前幀與已處於該狀態的在前幀並置來逐幀處理編碼參數的模型也稱為串流式或逐串流模型,並且可以用作實時和串流式卷積應用的卷積圖,如語音編碼。
下文討論了卷積的範例,並且可以理解,其可以用在預調節可學習層710(例如,循環可學習層)、至少一個調節可學習層71、72、73、更通常地,在第一處理區塊40(50)中。一般而言,到達的調節參數集合(例如,對於一個幀)可以儲存在佇列(未示出)中,以隨後由第一或第二處理區塊處理,同時第一或第二處理區塊分別處理前一幀。
現在討論對主要在預調節可學習層710(例如循環可學習層)下游的區塊中執行的操作。我們考慮已經從預調節可學習層710獲得的目標資料12,並且將其應用於調節可學習層71-73(調節可學習層71-73依次是,應用於樣式元件77),區塊71-73和77可以由生成器網路層770來實現,生成器網路層770可以包括多個可學習層(例如,多個區塊50a-50h,見下文)。
圖9(及其在圖10中的實施例)顯示出一音訊解碼器(產生器)10的實施例,該音訊解碼器(產生器)10可以從位元流3(例如1630或1830)解碼(例如生成、合成)音訊訊號(輸出訊號)16,其例如根據目前的技術進行(也稱為StyleMelGAN)。輸出音訊訊號16(例如1724、1824a、1824b)可以基於輸入訊號14(也稱為潛在訊號並且其可以是雜訊,例如白噪聲(“第一選項”),或者可以從另一個訊號獲得,如上所述,目標資料12可以包括(例如,是)頻譜圖(如梅爾頻譜圖),該頻譜圖(如梅爾頻譜圖)提供例如時間樣本序列到梅爾刻度上的映射(例如,從預調節可學習層710獲得)。目標資料12及/或第一資料15通常要被處理,以便獲得人類聽眾可識別為自然的語音。在解碼器1700、1800a、1800b中,從輸入獲得的第一資料15被設計(例如在區塊77)以具有向量(或更通常為張量),該向量具有由目標資料12調節的聲學特徵。最後,在輸出音訊訊號16(例如1724、1824a、1824b)是語音的情況下,輸出音訊訊號16(例如1724、1824a、1824b)將被人類聽眾辨識為語音。輸入向量14及/或第一資料15(例如,從內部或外部來源獲得的雜訊)可以是如圖10所示的128x1向量(一個單一樣本,例如時域樣本或頻域樣本,以及128個通道),圖10顯示出要提供給通道映射30的輸入訊號14,第一資料提供器702未示出或被認為與通道映射30相同。在其他實施例中可以使用不同長度的輸入向量14。輸入向量14可以在第一處理區塊40中被處理,例如,在透過預處理層710從位元流3(例如,1630或1830)獲得的目標資料12的調節下,第一處理區塊40可以至少包括一個,例如多個處理區塊50(例如50a…50h)。在圖10中,顯示出了八個區塊50a…50h(其中的每一個也被標識為「TADEResBlock」),但是在其他實施例中可以選擇採用不同的數量。在許多實施例中,處理區塊50a、50b等提供從輸入訊號14演變為最終音訊訊號16(例如,1724、1824a、1824b)的訊號的逐漸增加取樣(例如,至少一些處理區塊(例如,50a、50b、50c、50d、50e)增加了取樣率,使得其中的每一個都相對於其輸入中的取樣率增加了輸出中的取樣率(位元率),而一些其他處理區塊(例如50f-50h)(例如相對於增加取樣率的那些區塊(例如50a、50b、50c、50d、50e)的下游)不會增加取樣率(位元率)。區塊50a-50h可以被理解為形成一個單獨的區塊40(例如圖9所示的區塊)。在第一處理區塊40中,可學習層的調節集合(例如,71、72、73,但不同數量是可能的)可以用來處理目標資料12和輸入訊號14(例如,第一資料15)。因此,可以獲得調節特徵參數74、75(也稱為γ和β),其可以在訓練期間通過卷積進行。因此,可學習層71-73可以是學習網路的權重層的一部份。如上所述,第一處理區塊40、50可以包括至少一個樣式元件77(標準化區塊77),至少一個樣式元件77可以輸出第一輸出資料69,當存在多個處理區塊50時,多個樣式元件77可以產生多個分量,這些分量可以彼此相加以獲得最終版本的第一輸出資料69。至少一個樣式元件77可以將調節特徵參數74、75應用到輸入訊號14(潛在的)或從輸入訊號14獲得的第一資料15。
第一輸出資料69可以具有多個聲道,所產生的音訊訊號16(例如1724、1824a、1824b)可以具有單一聲道。
音訊產生器(例如解碼器)10可以包括第二處理區塊45(在圖10中顯示為包括區塊42、44、46、110),第二處理區塊45可以被設定為組合第一輸出資料69(作為第二輸入資料或第二資料而被輸入)的多個通道(在圖10中以47表示),以在單一通道中、但是在一系列樣本中(在圖10中,樣本用49指示)獲得輸出音訊訊號16(例如1724、1824a、1824b)。
「通道」不應在立體聲的背景下理解,而是在神經網路(例如卷積神經網路)或更通常在可學習單元的背景下理解。例如,輸入訊號(例如,潛在雜訊)14可以在128個聲道中(在時域的表示中),因為提供了聲道序列。例如,當訊號有40個樣本、64個頻道時,可以理解為40列、64行的矩陣,而當訊號有20個樣本、64個頻道時,可以理解為20列、64行的矩陣(其他模式化也是可能的)。因此,所產生的音訊訊號16(例如1724、1824a、1824b)可以被理解為單聲道訊號。如果要生成立體聲訊號,則只需對每個立體聲頻道重複所公開的技術,以獲得隨後混合的多個音訊訊號16。
至少原始輸入音訊訊號及/或產生的語音16可以是時域值的序列。相反地,區塊30和50a-50h、42、44中的每個(或至少一個)的輸出通常可以具有不同的維度(例如,二維或多維張量)。在區塊30和50a-50e、42、44中的至少一些中,可以對從輸入訊號14(例如雜訊)演變為語音訊號16(14、15、59、69)進行增加取樣。例如,在區塊50a-50h中的第一區塊50a處,可以執行2倍增加取樣。增加取樣的範例可以包括例如以下序列:(1)相同值的重複,(2)插入零,(3)另一次重複或插入零加上線性濾波等。
所產生的音訊訊號16(例如1724、1824a、1824b)通常可以是單聲道訊號。如果需要多個音訊聲道(例如,對於立體聲播放),則該過程原則上可以迭代多次。
類似地,目標資料12也可以具有多個通道(例如,在頻譜圖中,如梅爾頻譜圖),如由預調節可學習層710產生的。在一些實施例中,目標資料12可以被增加取樣(例如,透過因數為2、2的冪、2的倍數或大於2的值,例如不同的因數,例如2.5或其倍數)以適應訊號(59a、15、69)的維度沿著後續層(50a-50h、42)演變,例如以獲得具有適應於訊號維度的維度的調節特徵參數74、75。
如果第一處理區塊40被實例化為多個區塊(例如,50a-50h),則通道的數量可以例如保留多個區塊(例如,從50e到50h)中的至少一些,並且在區塊42中,通道的數量可以是多個區塊(例如,從50e到50h)中的至少一些,其數量不會改變。第一資料15可以具有第一維度或比音訊訊號16(例如1724、1824a、1824b)的維度低的至少一個維度。第一資料15可以具有比音訊訊號16(例如1724、1824a、1824b)低的所有維度上的樣本總數。第一資料15可以具有比音訊訊號16(例如1724、1824a、1824b)低一個維度但比音訊訊號16(例如1724、1824a、1824b)多一些通道。
實施例可以根據生成式對抗網路(GAN)的範例來執行。GAN包括GAN產生器11(圖10)和GAN鑑別器100(圖10)。GAN產生器11嘗試產生盡可能接近真實音訊訊號的音訊訊號16(例如1724、1824a、1824b)。GAN鑑別器100應識別產生的音訊訊號16(例如1724、1824a、1824b)是真實的還是假的。GAN產生器11和GAN鑑別器100都可以獲得為神經網路(或透過其他可學習技術)。GAN產生器11應最小化損失(例如,透過梯度方法或其他方法),並且透過考慮GAN鑑別器100處的結果來更新調節特徵參數74、75(及/或碼本)。GAN鑑別器100應減少自身的判別損失(例如透過梯度的方法或其他方法)並更新其自身的內部參數。因此,GAN產生器11被訓練以產生越來越好的音訊訊號16,同時GAN鑑別器100被訓練以從GAN產生器11生成的假音訊訊號中識別真實音訊訊號16。GAN產生器11可以包括以下功能:解碼器1700、1800a、1800b,但至少沒有GAN鑑別器100的功能。因此,在前述大部分內容中,GAN產生器11和音訊解碼器1700、1800a、1800b可以具有或多或少相同的特徵,除了音訊解碼器1700、1800a、1800b可以包括GAN鑑別器100作為內部組件。因此,GAN產生器11和GAN鑑別器100可以同時構成音訊解碼器1700、1800a、1800b。在不存在GAN鑑別器100的實施例中,音訊解碼器1700、1800a、1800b可以由GAN產生器11唯一地構成。
如所述「可學習層的調節集合」所解釋的,音訊解碼器1700、1800a、1800b可以根據調節神經網路(例如,調節GAN)的範例來獲得,例如,基於調節資訊。例如,調節資訊可以由目標資料(或其增加取樣版本)12構成,從目標資料12訓練層71-73(權重層)的調節集合並且獲得調節特徵參數74、75。因此,樣式元件77由可學習層71-73調節。這同樣適用於預調節層710。
編碼器1600a、1600b(或音訊訊號表示產生器1610a、1610b)處及/或編碼音訊訊號表示解碼器1710、1810a、1810b(或更通常為音訊產生器10)處的範例可以基於卷積神經網路。例如,一個小矩陣(例如,濾波器或內核),可以是3x3矩陣(或4x4矩陣,或1x1矩陣,或小於10x10矩陣等),沿著更大的矩陣(例如,通道x對潛在或輸入訊號及/或頻譜圖及/或頻譜圖或增加取樣頻譜圖或更通常為目標資料12進行取樣),例如,意味著濾波器(內核)的元素與較大矩陣(激活圖或激活訊號)的元素之間的組合(例如,乘積與乘積和;點積等)。在訓練期間,獲得(學習)過濾器(內核)的元素,這些元素是最小化損失的元素。在推導過程中,使用在訓練期間獲得的過濾器(內核)元素。卷積的例子可以用在區塊71-73、61b、62b(見下文)、230、250、290、429、440、460中的至少一個處。值得注意的是,也可以用三維張量(或使用超過三個維度的張量)來代替矩陣。在卷積是有調節的情況下,則卷積不必應用於從輸入訊號14經由中間訊號59a(15)、69等向音訊訊號16(例如1724、1824a、1824b)演變的訊號,而是可以應用於目標訊號14(例如,用於產生隨後應用於第一資料15、或潛在的、或先前的、或從輸入訊號向語音16演進的訊號的調節特徵參數74和75)。在其他情況下(例如,在區塊61b、62b處,見下文),卷積可以是無調節的,並且可以例如直接應用於訊號59a(15)、69等,從輸入訊號14向音訊訊號16(例如1724、1824a、1824b)演變。可以執行調節和非調節卷積。
在一些實施例中(在解碼器或編碼器處),可以在卷積下游具有激活函數(ReLu、TanH、softmax等),其可以根據預期效果而不同。ReLu可以映射0和卷積得到的值之間的最大值(實際上,如果是正值則保持相同的值,如果是負值則輸出0),如果x>0,帶洩漏線性整流函數(Leaky ReLu)可以輸出x,如果x≤0,則輸出0.1*x,x是卷積得到的值(在某些實施例中可以使用其他值來取代0.1,例如0.1±0.05內的預定值)。TanH(其可例如在區塊63a及/或63b實現)可以提供在卷積處獲得的值的雙曲正切,例如TanH(x)=(ex-e-x)/(ex+e-x),其中x是在卷積處獲得的值(例如在區塊61b,見下文)。Softmax(例如,在區塊64b處應用)可以將指數應用於卷積結果的元素中的每個元素,並且通過除以指數之和來將其歸一化,Softmax可以提供由卷積產生的矩陣中的條目的機率分佈(例如,如在62b處提供的)。在應用激活函數之後,在一些實施例中可以執行池化步驟(圖中未示出),但是在其他實施例中可以避免這個步驟。也可以有一個softmax-gated TanH函數,例如透過將TanH函數的結果(例如在63b處獲得,見下文)與softmax函數的結果(例如在64b處獲得)相乘(例如在65b處,見下文)。在一些實施例中,多層卷積(例如可學習層的調節集合)可以是一個在另一個的下游及/或彼此並行,以便提高效率。如果提供激活函數及/或池化的應用,則其也可以在不同的層中重複(或例如,不同的激活函數可以應用於不同的層),這也可以應用於編碼器。
在音訊訊號表示解碼器1710、1810a、1810b(或音訊產生器1700、1800a、1800b)處,輸入訊號14在不同步驟處被處理以變成所產生的音訊訊號16(例如1724、1824a、1824b),例如在由可學習層或可學習層71-73的調節集合的調節集合下,並且在由可學習層的調節集合或可學習層71-73學習的參數74、75上,因此,輸入訊號14(或其演進版本,即第一資料15)可以被理解為在處理方向(從14到16)上演變成產生的音訊訊號16(例如1724、1824a、1824b)(例如語音)。這些調節基本上將基於目標訊號12及/或位元流3(例如1630或1830)中的前提調節以及訓練(以便達到最佳的一組參數74、75)來產生。
還應注意者,輸入訊號14的多個通道(或其任何演變)可以被認為具有一組可學習層和與其相關聯的樣式元件77。例如,矩陣74和75的每一行可以與輸入訊號的特定通道(或其演進之一)相關聯,例如,從與特定通道關聯的特定可學習層獲得。類似地,樣式元件77可以被認為是由多個樣式元件形成(每個樣式元件對應於輸入訊號x、c、12、76、76'、59、59a、59b等的每一行)。
圖10顯示一種音訊解碼器(或更通常為音訊產生器)10(其可以體現音訊解碼器1700、1800a、1800b)的示例,並且其還可以包括(例如是)GAN產生器11(見下文)。圖10現在確實顯示出了預調節可學習層710(圖9中所示),儘管目標資料12是透過預處理層710(參見上文)從位元流3(例如1630或1830)獲得的。目標資料12可以是從預調節可學習層710獲得的梅爾頻譜圖(或其他張量)(但其可以是其他種類的張量);輸入訊號14可以是潛在的(先前的)雜訊或從內部或外部來源獲得的訊號,並且輸出可以是語音16。輸入訊號14可以只具有一個樣本和多個通道(表示為“x”,因為其可以變化,例如通道的數量可以是80或其他)。輸入向量14可以在具有128個通道的向量中獲得(但其他數量也是可能的)。如果輸入訊號14是雜訊(「第一選項」),則其可以具有零均值常態分佈,並且遵循公式z~N(0,I
128);其可能是維度為128、平均值為0的隨機雜訊,並且自相關矩陣(128x128)等於恆等式I(可以做出不同的選擇)。因此,在雜訊被用作輸入訊號14的範例中,其可以在通道之間完全去相關並且具有方差1(能量)。N(0,I
128)可以在每22528個產生的樣本處實現(或可以針對不同的範例選擇其他數字);因此,時間軸上的維度可以是1,通道軸上的維度可以是128。在本實施例中,輸入訊號14可以是恆定值。
輸入向量14可以被逐步處理(例如,在區塊702、50a-50h、42、44、46等處),以便演變成語音16(演進的訊號將被指示,例如,具有不同的訊號15、59a、x、c、76'、79、79a、59b、79b、69等)。
在區塊30處,可以執行通道對應,其可以由簡單的卷積層組成或包括改變通道數,例如,在本實施例中是從128改變到64。區塊30因此可以是可學習的(在一些示例中,其是確定性的)。可以看出,處理區塊50a、50b、50c、50d、50e、50f、50g、50h中的至少一些(共同體現圖6的第一處理區塊50)可以對於每一幀透過執行增加取樣來增加樣本的數量(例如,最大2倍增加取樣)。沿著區塊50a、50b、50c、50d、50e、50f、50g、50h,通道的數量可以保持相同(例如,64)。例如,樣本可以是每秒(或其他時間單位)的樣本數:我們可以在區塊50h的輸出處獲得16kHz或更高(例如22Khz)的聲音。如上所述,多個樣本的序列可以構成一幀。區塊50a-50h(50)中的每一個還可以是TADEResBlock (亦即時間自適應去標準化(TADE)的內容中的殘餘區塊)。值得注意的是,每個區塊50a-50h(50)可以由目標資料12(例如,代碼,其可以是張量,諸如多維張量,例如具有2、3或更多維度)及/或由位元流3(例如1630或1830)來調節,在第二處理區塊45處,可以只獲得一個單一通道,並且在一個單一維度中獲得多個樣本(也參見圖11)。可以看出,可以使用另一個TADEResBlock 42(除了區塊50a-50h)(其將尺寸減少到四個單一通道)。然後,可以執行卷積層44和激活函數(例如,其可以是TanH 46)。還可以應用一(偽正交鏡像濾波器)庫110,以便獲得最終的16(並且可能被儲存、渲染等)。
區塊50a-50h(或其中的每一個,在特定實施例中)和區塊42中的至少一個,以及編碼器層230、240和250(以及430、440、450、460)可以是例如為剩餘區塊。剩餘可學習區塊(層)可以對從輸入訊號14(例如,雜訊)演變成輸出音訊訊號16(例如,1724、1824a、1824b)的訊號的剩餘成分進行預測。剩餘訊號只是從輸入訊號14向輸出訊號16演變的主訊號的一部分(剩餘成分)。例如,多個剩餘訊號可以彼此相加,以獲得最終輸出音訊訊號16(例如,1724、1824a、1824b)。然而,也可以使用其他架構。
圖12顯示出區塊50a-50h(50)其中之一的實施例。區塊50a-50h(50)可以彼此重複,但是,當訓練時,其可能導致不同。可以看到的,每個區塊50(50a-50h)被輸入第一資料59a,該第一資料59a可以是第一資料15(或其增加取樣版本,諸如由增加取樣區塊30輸出的資料),或來自前一區塊的輸出。例如,區塊50b可以被輸入區塊50a的輸出;區塊50c可以被輸入區塊50b的輸出,等等。在本實施例中,不同的區塊可以彼此並行操作,並且結果被加在一起。從圖12可以看出,提供給區塊50(50a-50h)或42的第一資料59a被處理並且其輸出是輸出資料69(其將被提供作為後續區塊的輸入)。如線59a'所示,第一資料59a的主要成分實際上繞過第一處理區塊50a-50h(50)的大部分處理。例如,區塊60a、900、60b以及902和65b被主要分量59a’跳過。第一資料59(15)的剩餘分量59a可被處理以獲得剩餘部分65b’,以在加法器65c處添加到主要分量59a’(其在圖12中指示,但未示出)。跳過主要分量59a'和加法器65c處的加法可以被理解為實例化每個區塊50(50a-50h)處理對剩餘訊號的操作,然後將剩餘訊號加入訊號的主要部分。因此,區塊50a-50h中的每一個都可以被認為是剩餘區塊。加法器65c處的加法不一定需要在剩餘區塊50(50a-50h)內執行。可以執行多個剩餘訊號65b’(每個由剩餘區塊50a-50h中的每一個輸出)的單次相加(例如,在第二處理區塊45中的一個單一加法器區塊處)。因此,不同的剩餘區塊50a-50h可以彼此並行操作。在圖12的實施例中,每個區塊50(50a-50h)可以重複其卷積層兩次。第一去歸一化區塊60a和第二去歸一化區塊60b可以級聯使用。第一去歸一化區塊60a可以包含樣式元件77的實例,以將調節特徵參數74和75應用到第一資料59(15)(或其剩餘版本59a)。第一去歸一化區塊60a可以包括歸一化區塊76。歸一化區塊76可以沿著第一資料59(15)(例如,其剩餘版本59a)的通道執行歸一化。因此可以得到第一資料59(15)(或其剩餘版本59a)的標準化版本c(76’)。因此,樣式元件77可以應用於標準化版本c(76’),以獲得第一資料59(15)(或其剩餘版本59a)的非標準化(調節化)版本。例如,可以透過矩陣(或更通常為張量)γ(其體現調節74)和訊號76'(或另一個版本)的元素的逐個元素相乘來獲得元件77處的去歸一化輸入訊號和語音之間的訊號,及/或透過矩陣(或更通常為張量)β(其體現調節75)和訊號76'(或輸入訊號和語音之間的訊號的另一個版本)。因此可以得到第一資料59(15)(或其剩餘版本59a)的去歸一化版本59b(由調節特徵參數74和75調節)。
然後,可以對第一資料59的去歸一化版本59b(例如,其剩餘版本59a)執行門控激活900。具體地,可以執行兩個卷積61b和62b(例如,每個具有3x3內核並且具有膨脹因子1)。不同的活化函數63b和64b可以分別應用於卷積61b和62b的結果,活化函數63b可以是TanH,活化函數64b可以是softmax,兩個活化函數63b和64b的輸出可以彼此相乘,以獲得第一資料59的去歸一化版本59b(或其剩餘版本59a)的門控版本59c。隨後,可以對第一資料59的去歸一化版本59b(或其剩餘版本59a)的門控版本59c執行第二去歸一化60b。第二去歸一化60b可以與第一去歸一化類似,因此這裡不再描述。隨後,可以執行第二激活902。這裡,內核可以是3x3,但是膨脹因子可以是2。在任何情況下,第二門控激活902的膨脹因子可以大於第一門控激活900的膨脹因子。可學習層71-73的調節集合 (例如,從預調節可學習層獲得)和樣式元件77可以被應用(例如,對於每個區塊50a、50b…等進行兩次)到訊號59a。可以在增加取樣區塊70處執行目標資料12的增加取樣,以獲得目標資料12的增加取樣版本12’。增加取樣可以透過非線性插值來獲得,並且增加取樣所使用的因數可以例如是2、2的冪、2的倍數或大於2的值。因此,在一些實施例中,可以使頻譜圖(例如梅爾頻譜圖)12’具有相同的維度(例如,符合)要進行頻譜圖調節的訊號(76、76'、c、59、59a、59b等)。在實施例中,分別在TADE區塊60a或60b下游的區塊61b和62b處的第一和第二卷積可以在內核中相同數量的元素(例如,9,例如3x3)處執行。然而,區塊902中的第二卷積可以具有2的膨脹因子。在實施例中,卷積的最大膨脹因子可以是2。
如上所述,目標資料12可以例如被增加取樣,以便符合輸入訊號(或由其演進的訊號,例如59、59a、76’,也稱為潛在訊號或活化訊號)。於此,可以執行卷積71、72、73(目標資料12的中間值以71’表示),以獲得參數γ(74)和β(75)。卷積71、72、73中任一個也可能需要整流線性單元ReLu或洩漏整流線性單元leaky ReLu。參數γ和β可以具有與激活訊號(被處理以從輸入訊號14演變為生成的音訊訊號16(例如1724、1824a、1824b)的訊號)相同的維度,其在這裡表示為x、59、59a、或歸一化形式時的76')。因此,當活化訊號(x、59、59a、76')具有二維時,γ和β(74和75)也具有二維,並且其中的每一個都可以疊加到活化訊號(γ和β可以與激活訊號的長度和寬度相同)。在樣式元件77處,調節特徵參數74和75被應用於激活訊號(其可以是乘法器65a輸出的第一個資料59a或59b)。然而,應注意者,激活訊號76’可以是第一資料59、59a、59b(15)的歸一化版本(在實例歸一區塊76處),該歸一化是在通道維度中的。另外要注意的是,樣式元件77中所示的公式(γc+β,在圖12中也用
表示)可以是逐元素乘積,並且在一些實施例中不是卷積乘積或點乘積。卷積72和73不一定具有其下游的活化函數。參數γ(74)可以被理解為具有變異值且β(75)可以被理解為具有偏差值。請注意,對於每個區塊50a-50h、42,可學習層71-73(例如與樣式元件77一起)可以被理解為體現權重層。另外,圖10的區塊42可以被實例化為圖12的區塊50。然後,例如,卷積層44將通道的數量減少到1,並且之後,執行TanH 46以獲得語音16。區塊44和46的輸出44'可以具有減少數量的通道(例如,4個通道而不是64個),及/或可以具有與前一區塊50或42相同數量的通道(例如,40個)。
對訊號44’執行PQMF合成(也見下文)110,以便獲得一個通道中的音訊訊號16(例如1724、1824a、1824b)。
從索引到代碼的量化和轉換
首先,需要注意的是,使用索引來對應一個代碼(例如張量)並不是嚴格必要的,可能採用以下技術:
- 分割張量量化:
o 在編碼器(例如1600a、1600b)處,量化器1608將一個單一張量轉換為多個索引,例如利用下列步驟:
§ 將該張量分割為多個子張量(例如子向量)(例如在張量中的特定座標或位置)
§ 為每個子張量提供一個索引
§ 為此,可以為該張量的不同部分定義不同的碼本
§ 在某些情況下,可能會定義張量的主要部分(例如主子張量)和張量的至少一個低階部分(例如低階子張量)
§ 因此,量化器1608將使用相應的碼本將每個子張量轉換為相應的索引
o 在音訊訊號表示解碼器(例如1710、1810a、1810b)處,量化索引轉換器轉換每個張量的多個索引,例如利用下列步驟:
§ 將每個索引轉換為對應的子張量
§ 將子張量組合成一個張量
§ 與編碼器類似,可以使用不同的碼本。
- 殘差量化:
o 在編碼器(例如1600a、1600b)處,量化器1608將一個單一張量轉換為多個索引,例如利用下列步驟:
§ 迭代地將當前張量分解為主要部分和至少一個剩餘部分(例如誤差)
§ 對於張量的每個部分,可以使用特定索引執行轉換
§ 即使在這種情況下,也可能使用多個碼本(例如主碼本和剩餘碼本)
o 在音訊訊號表示解碼器(例如1710、1810a、1810b)處,量化索引轉換器將每個張量的多個索引進行轉換,例如利用下列步驟:
§ 將每個索引轉換到張量的每個部分(主要部分、剩餘部分)(可以使用與編碼器中相同的高階碼本)
§ 將所有部分組合在一起(例如透過相加)
在一些實施例中,張量的部分可以是分量(例如加數)。
以下將特別參考殘差量化,即使類似的概念可以用來分割量化。
這裡討論當採用是量化索引時,量化器1608(例如圖6a或6b中)和量化索引轉換器313(逆或反量化器)的操作。請注意,量化器可以輸入標量、向量或更通常為張量,並且量化索引轉換器313(1818a、1818b、1718)將索引轉換成至少一個代碼(其取自碼本)。
所使用的碼本可以是例如碼本1622和1624(也可能是圖1a的1122、1124、1124a、1124b)。
這裡使用以下設定:
● x是語音(或更通常為待編碼的輸入訊號1602)
● E(x)是音訊訊號產生器1604的輸出,其可以是向量或更通常為張量
● 參考(例如點)代碼(例如 z、r、q)的索引(例如i
z、i
r、i
q)至少在一個碼本中(例如z
e、r
e、q
e)
● 索引(例如i
z、i
r、i
q)由量化器1608寫入位元流3(例如1630或1830)並由量化索引轉換器313(1818a、1818b、1718)讀取
● 以近似於值E(x)的方式選擇主代碼(例如z)
● 以近似於殘差E(x)-z的方式選擇第一個(如果存在)剩餘代碼(例如r)
● 以近似於殘差E(x)-z-r的方式選擇第二個(如果存在)剩餘代碼(例如q)
● 解碼器(例如在量化索引轉換器313、1718、1818a、1818b處)從位元流3(例如1630或1830)讀取索引(例如i
z、i
r、i
q),獲得代碼(例如z、r、q),並且重構張量(例如,表示第一個音訊訊號1的第一個音訊訊號表示220中的幀的張量),例如取代碼的和(例如z+r+q)為張量112。
● 可以添加抖動,以避免潛在的聚集效應。
圖6a或6b的量化器1608可以將最接近輸入音訊訊號1602的第一多維音訊訊號表示的每個張量或第一多維音訊訊號表示的處理版本關聯到代碼。碼本的張量(例如,最小化與張量的距離的代碼),以便允許在位元流3中寫入索引,該索引在碼本中與最小化距離的代碼相關聯。
如上所述,可以根據殘差技術來定義至少一個碼本,例如可以是:
1) 主(基本)碼本z
e(例如1622、1122)可以定義為具有多個代碼,使得選擇碼本中的特定代碼z ϵ z
e,其與由區塊290輸出的幀E(x)(輸入向量)的主要部分的近似相關聯;
2) 可以定義具有多個代碼的可選的第一剩餘碼本r
e(例如1624、1124),使得選擇最近似於輸入向量E(x)的主要部分的殘差E(x)-z的特定代碼r ϵ r
e;
3) 可以定義具有多個代碼的可選的第二剩餘碼本q
e(例如1124a),使得選擇近似第一階殘差E(x)-z
e-r
e的特定代碼q ϵ q
e;
4) 可能可選的更低階的剩餘碼本。
可以根據索引對每個碼本的代碼進行索引,可以透過訓練得到碼本中的每個代碼與索引的關聯關係,位元流3(例如1630或1830)中寫入的是每個部分(主要部分、第一個剩餘部分、第二剩餘部分)的索引,例如,可以是:
1) 指向z ϵ z
e的第一個索引i
z2) 指向第一個殘差r ϵ r
e的第二個索引i
r3) 指向第二個殘差q ϵ q
e的第三個索引i
q
雖然代碼z、r、q可以具有針對每個幀的音訊訊號表示產生器1604的輸出E(x)的維度,但索引i
z、i
r、i
q可以是其編碼版本(例如,位元串流、例如10的位元)。
因此,可能存在多個剩餘碼本,使得:
第二剩餘碼本q
e將表示輸入音訊訊號的第一多維音訊訊號表示的第二剩餘部分的代碼(例如,標量、向量或更通常是張量)與要在音訊訊號表示中編碼的索引相關聯,
第一剩餘碼本r
e將表示第一多維音訊訊號表示的幀的第一剩餘部分的代碼與要在音訊訊號表示中編碼的索引相關聯,
相對於幀的第一剩餘部分,幀的第二剩餘部分是剩餘的(例如低階)。
同時,音訊產生器1700、1800a、1800b(或音訊訊號表示解碼器1710、1810a、1810b,或具體地量化索引轉換器1718、1818a、1818b)可以執行相反的操作,音訊產生器1700、1800a、1800b可以具有碼本,其可以將位元流(1630、1830)的索引(例如,i
z、i
r、i
q)從碼本中的代碼轉換為代碼(例如,z、r、 q)。
例如,在上面的剩餘情況下,對於位元流3(1630、1830)的每個幀,位元流可以呈現:
1) 主索引i
z表示代碼z ϵ z
e,用於從索引(代碼)i
z轉換為代碼z,從而形成近似於E(x)的張量(例如向量)的主要部分z
2) 第一剩餘索引(第二索引)i
r表示代碼r ϵ r
e,用於將索引i
r轉換為代碼r,從而形成近似於E(x)的張量(例如向量)的第一剩餘部分
3) 第二剩餘索引(第三索引)i
q表示代碼q ϵ r
q,用於將索引i
q轉換到代碼q,從而形成近似於E(x)的張量(例如向量)的第二剩餘部分
然後,可以獲得幀的代碼版本(張量版本)212,例如可以是其總和z+r+q。
GAN
鑑別器
圖13的GAN鑑別器100可以應用在訓練期間,以獲得例如要應用於輸入訊號12(或其處理的及/或歸一化的版本)的參數74和75,訓練可以在推導之前執行,並且參數(例如74、75及/或至少一個碼本)可以例如儲存在非暫時性記憶體中並隨後使用(然而,在一些實施例中,參數74或75也可能是利用線上計算的)。
GAN鑑別器100具有學習如何從真實輸入訊號(例如真實語音)104識別所產生的音訊訊號(例如如上所述合成的音訊訊號16(例如1724、1824a、1824b))的作用。因此,GAN鑑別器100的作用主要在訓練期間發揮(例如,用於學習參數72和73),並且被視為與GAN產生器11(其可以被視為不具有GAN鑑別器100的音訊解碼器1700、1800a、1800b)的角色處於對立位置。
一般而言,GAN鑑別器100可以由GAN解碼器1700、1800a、1800b合成的(並且從位元流3(例如1630或1830)獲得的)音訊訊號16(例如1724、1824a、1824b)輸入,其中編碼器1600a或1600b又可以從輸入音訊訊號1602和例如通過麥克風或從其他來源獲取的真實音訊訊號(例如,真實語音)104生成,並且處理訊號以獲得被最小化的度量(例如,損失)。真實音訊訊號104也可以被認為是參考音訊訊號。在訓練期間,可以重複(例如多次)類似於上面解釋的那些用於合成語音16的操作,以例如得到參數74和75。
在實施例中,不採用取代分析整個參考音訊訊號104及/或整個產生的音訊訊號16(例如1724、1824a、1824b),而是採用只分析其一部分(例如一部分、一片段、一視窗等等),可以獲得從產生的音訊訊號16(例如1724、1824a、1824b)和從參考音訊訊號104取樣的隨機視窗(105a-105d)中產生的訊號部分。例如,可以使用隨機視窗函數,使得不是先驗預定義將使用哪個視窗105a、105b、105c、105d。另外,視窗的數量不一定是四個,其數量是可以改變的。
在視窗(105a-105d)內,可以應用PQMF(偽正交鏡像濾波器)庫110,因此,可以獲得子頻帶120。因此,得到所產生的音訊訊號(16)的表示或參考音訊訊號(104)的表示的分解(110)。
評估區塊130可用於執行評估。可以使用多個評估器132a、132b、132c、132d(可用132複合地表示)(可以使用不同的數量)。一般而言,每個視窗105a、105b、105c、105d可以輸入到對應的評估器132a、132b、132c、132d。對於每個評估器(132a-132d),隨機視窗(105a-105d)的取樣可以重複多次。在實施例中,針對每個評估器(132a-132d)對隨機視窗(105a-105d)進行取樣的次數可以與所產生的音訊訊號的表示或參考音訊訊號(104)的表示的長度成比例。因此,評估器(132a-132d)中的每一者可接收所產生的音訊訊號(16)的表示或參考音訊訊號(104)的表示的一個或數個部分(105a-105d)作為輸入。
每個評估器132a-132d本身可以是神經網路。具體地,每個評估器132a-132d可以遵循卷積神經網路的範例。每個評估器132a-132d可以是殘差評估器。每個評估器132a-132d可以具有在訓練期間適應的參數(例如權重)(例如,以類似於上面解釋的那些方式其中之一的方式)。
如圖13所示,每個評估器132a-132d也執行減少取樣(例如,以4或按另一減少取樣率進行)。對於每個評估器132a-132d,通道的數量可以增加(例如,增加4,或在一些實施例中增加與減少取樣率相同的數量)。
在評估器的上游及/或下游,可以提供卷積層131及/或134。上游的卷積層131可以具有例如維度為15(例如,5x3或3x5)的內核,下游的卷積層134可以具有例如維度為3(例如,3x3)的內核。
在訓練期間,可以最佳化損失函數(對抗性損失)140。損失函數140可以包括產生的音訊訊號(16)和參考音訊訊號(104)之間的固定度量(例如,在預訓練步驟期間獲得的)。固定度量可以透過計算所產生的音訊訊號(16)和參考音訊訊號(104)之間的一個或多個頻譜失真來獲得。可以考慮以下因素來測量失真:
- 所產生的音訊訊號(16)和參考音訊訊號(104)的頻譜表示的幅度或對數幅度,及/或
- 不同的時間或頻率解析度。
在實施例中,對抗性損失可以透過由一個或多個評估器(132)隨機提供和評估所產生的音訊訊號(16)的表示或參考音訊訊號(104)的表示來獲得。此評估可以包括將所提供的音訊訊號(16、132)分類為指示音訊訊號(14、16)的自然度的預訓練分類等級的預定數量的類別。 預定數量的類別可以是例如“真”與“假”。
損失的例子可以透過以下方式獲得
其中:
x是真實語音104,
z是潛在輸入14(其可以是雜訊或從位元流3(例如1630或1830)獲得的另一個輸入),
s是表示x(或更通常地說是目標訊號12)的張量,
D(…)是評估器在機率分佈方面的輸出(D(…)=0表示“肯定是假的”,D(…)=1表示“肯定是真的”)。
頻譜重建損失L
rec仍用於正規化,以防止對抗性偽影,最終的損失可以是,例如:
其中,每個i是每個評估器132a-132d處的貢獻(例如,每個評估器132a-132d提供不同的D
i),並且L
rec是預訓練的(固定)損失。
在訓練期間,會搜尋L的最小值,例如可以表示為
亦可以執行其他類型的最小化。
一般而言,最小對抗性損失140與要應用於樣式元件77的最佳參數(例如,74、75)相關聯。
1) 應注意的是,訓練課程以及編碼器1600a或1600b(或至少音訊訊號表示產生器1604)可以與解碼器1700、1800a、1800b(或更通常為音訊產生器10)一起被訓練,因此,連同解碼器1700、1800a、1800b(或更通常為音訊產生器10)的參數,還可以獲得編碼器1600a或1600b(或至少音訊訊號表示產生器1604)的參數。具體地,可以透過訓練獲得以下至少其中之一:可學習層230、250(例如,內核)的權重
2) 循環可學習層的權重240
3) 可學習區塊290的權重,包括層429、440、460的權重(例如,內核)
4) 可學習量化器要使用的碼本(例如z
e、r
e、q
e中的至少其中之一)(與量化索引轉換器313的雙重使用的碼本)。
一起訓練編碼器1600a或1600b以及解碼器1700、1800a、1800b的一般方法是使用GAN鑑別器100,在GAN鑑別器100中應區分:
根據編碼器1實際產生的位元流3中的幀所產生的音訊訊號16;和
音訊訊號16是從非編碼器1產生的位元流中的幀產生的。
產生至少一個碼本
特別注意要由量化器1608及/或量化索引轉換器1818a、1818b、1718(313)使用的碼本(例如z
e、r
e、q
e中的至少其中之一),可以有不同的方式定義碼本。
在訓練課程期間,多個位元流3(1630、1830)可以由量化器1608產生並且由量化索引轉換器313(1818a、1818b、1718)獲得。索引(例如i
z、i
r、i
q)被寫入位元流3中,以對已知音訊訊號的已知幀進行編碼。訓練課程可以包括相對於提供給音訊訊號表示產生器1610a、1610b的已知輸入音訊訊號1602在音訊訊號表示解碼器1800a、1800b、1700處生成的音訊訊號16的評估:至少一個碼本與編碼位元流的幀相適配(例如,透過最小化所產生的音訊訊號16(例如1724、1824a、1824b)和已知音訊訊號1602之間的差異)。
在使用GAN的情況下,GAN鑑別器100應區分:
由編碼器1600a、1600b實際產生的位元流3(1630、1830)中的幀產生的音訊訊號16(例如,1724、1824a、1824b);和
在非由編碼器1600a、1600b產生的位元流中產生的音訊訊號16。
在訓練課程期間,可以定義每個索引的索引長度(例如,10個位元而不是15個位元)。因此,訓練至少可以提供:
具有第一候選索引的多個第一位元流,第一候選索引具有第一位元長度並且與表示已知音訊訊號的第一個已知幀相關聯,第一候選索引形成第一候選碼本,以及
具有第二候選索引的多個第二位元流,第二候選索引具有第二位元長度並且與表示相同第一個已知音訊訊號的已知幀相關聯,第二候選索引形成第二候選碼本。
第一位元長度可以高於第二位元長度(及/或第一位元長度具有更高的解析度但比第二位元長度佔用更多的頻帶)。訓練課程可以包括將從多個第一位元流獲得的產生的音訊訊號與從多個第二位元流獲得的產生的音訊訊號進行比較的評估,從而選擇碼本(例如,使得所選的可學習碼本是在第一候選碼本和第二候選碼本之間所選的碼本),例如,可以對測量從多個第一位元流產生的音訊訊號的品質的度量之間的第一比率進行評估位元長度與測量從多個第二位元流產生的音訊訊號的品質相對於位元率的度量之間的第二比率,並且選擇使該比率最大化的位元長度(例如,這可以對每個碼本重複,如主碼本、第一剩餘碼本、第二剩餘碼本等)。鑑別器100可以評估使用具有低位元長度索引的第二候選碼本產生的輸出訊號16是否看起來與使用偽位元流3產生的輸出訊號16相似(例如,透過評估L的最小值的閾值及/或在鑑別器100處的誤差率),並且在肯定的情況下,將選擇具有低位元長度索引的第二候選碼本;否則,將選擇具有高位元長度索引的第一候選碼本。
另外或可替代地,訓練課程可以透過使用以下方式進行:
具有與表示已知音訊訊號的第一已知幀相關聯的第一索引的第一多個第一位元流,其中第一索引具有第一最大數量,第一多個第一候選索引形成第一候選碼本;和
具有與表示相同已知音訊訊號的第一已知幀相關聯的第二索引的第二多個第二位元流,第二多個第二候選索引形成第二候選碼本,其中第二索引具有與第一最大數量不同的第二最大數量。
討論
本發明的原理
我們提出了一種基於DNN的PLC自回歸網路(也稱為PLCNet),其可以與我們先前提出的編解碼器NESC[7]深度整合。NESC是一種端對端語音編解碼器,由神經編碼器和神經解碼器組成。神經編碼器從語音訊號中學習潛在表示,並以3.2kbps 的位元率對其進行向量量化。神經解碼器使用量化表示作為調節特徵來合成原始訊號。所提出的PLCNet致力於預先訓練NESC模型的潛在表示,並預測未來隱藏的潛在表示。PLCnet(主要如圖1b和圖2,以及圖8a和圖8b所示)給出了良好的結果(見圖4和圖5)。
我們也為NESC提出了FEC模式(例如圖6a和6b顯示編碼器端,圖7顯示解碼器端),這樣過去的潛在表示可以與當前幀一起發送以進行隱藏,並協助PLCNet適用於較大的突發錯誤。FEC是獨立的,並且是至少一個過去幀的另一種描述。如果在接收器側執行(去)抖動緩衝區管理,則可以利用 FEC,其可以利用低成本避免遺失幀的重傳、靜音或隱藏,從而明顯地提高系統的彈性。FEC模式可能會附帶0.8kbps 到3.2kbps的額外位元率,這取決於要傳送到解碼器的過去幀的數量(在我們的實施例中為1到4)及/或在遺失封包的情況下所需的品質及/或所需的總位元率。
PLCNet 與 FEC :●
PLCNet:
o NESC可能包括具有例如4個碼本的殘差量化。
o 第一碼本(如1622、1122等)可以是能夠產生可接受的語音訊號品質的主要表示,因此,使其單獨適合於隱藏。
o PLCNet可以獨立於編解碼器進行訓練。
o 在PLCNet中使用GRU等儲存元件有助於產生用於突發錯誤隱藏的自回歸特徵。
● 前向錯誤修正(FEC):
o 用於神經編解碼器的新FEC。
o 在一些實施例中,由於抖動緩衝器中未來幀的可用性而成為可能(例如請參閱圖3a和3b)。
o 冗餘幀包含過去主幀的資訊並與當前主幀一起傳送。
o 在冗餘幀中考慮的過去幀的選擇可能取決於抖動緩衝器長度及/或網路條件,並且可以稱為「FEC偏移」。
o 冗餘幀可以包含單一碼本階段索引(例如0.8kbps)或所有碼本階段索引(例如3.2kbps),具體取決於校正封包的所需品質。
o 或者,冗餘幀可以包含有關多個過去幀的資訊(例如,4個不同的過去幀,具有4個不同的FEC偏移量,用於主幀上3.2kbps的有效負載),以便在非常糟糕的網路條件下更有效地進行修正。
o 可以選擇為在潛在表示上訓練的冗餘資訊提供專用碼本。
聆聽測試結果:可以參考圖4所示的範例。
- 資料集:MS質詢PLC資料集(MS Challenge PLC dataset),最大突發遺失為120ms和320ms。
- 幀錯誤率在4%-30%之間。
- NESC PLC:建議的隱藏方法用於潛在表示的深度整合估算,結果如圖4所示。
- NESC/PLCNet:NESC使用另一個專用生成網路作為遺失幀的後處理器,對現有技術進行隱藏(顯著的複雜性開銷)
改良 / 新穎的 FEC :- 專用於神經編解碼器的FEC新方法,使用過去幀的冗餘資訊。
o 在潛在空間中運行的新FEC不需要額外的學習層,並且涉及神經編碼器的最小結構變化,從而允許簡單而強大的整合。
o FEC使用碼本的某些階段或全新訓練的碼本來執行。
- 專用於神經編解碼器的FEC新方法,使用逐個當前幀的冗餘資訊。
o 在潛在空間中運行的新FEC不需要額外的學習層,並且涉及神經編碼器的最小結構變化,從而允許簡單而強大的整合。
o FEC使用碼本的某些階段或全新訓練的碼本來執行。
改良 / 新穎的 PLC :- PLC在潛在特徵域中的自回歸方法,可預測未來的碼本索引,並獨立於神經編解碼器進行訓練。
- 對於高達120毫秒及以上的突發大小以及高達30%的錯誤率,具有良好的隱蔽性。
部分實施態樣的總結
在上述實施例中,部分實施態樣涉及音訊訊號表示解碼器,其被配置為從位元流解碼音訊訊號表示,該位元流被劃分為一序列之多個封包,該音訊訊號表示解碼器包括:
一位元流讀取器,被配置為依序讀取該序列之該等封包[例如提取至少一個當前封包內的至少一個索引];
一封包遺失控制器,被配置為確認一當前封包是否被良好接收[例如其具有正確的格式]或是否被視為遺失;以及
一量化索引轉換器,被配置為在該封包遺失控制器已經確認該當前封包被良好接收[例如其具有正確的格式]的情況下,將從該當前封包中提取到的至少一個索引轉換到來自至少一個碼本的至少一個當前代碼[例如向量/張量]上,從而形成該音訊訊號表示的至少一部分;以及
其中,該音訊訊號表示解碼器被配置為在該封包遺失控制器已確認該當前封包被視為遺失的情況下,由至少一個可學習預測器層根據至少一個在前代碼或索引進行一預測[例如代碼預測或索引預測]來生成該至少一個當前代碼[例如,可以透過從先前獲得的索引或代碼進行預測來獲得當前代碼,或者,可替代地,可以透過從先前獲得的索引或代碼進行預測來獲得當前索引][預測可以基於先前預測的代碼或索引或基於先前從正確接收到的索引轉換的代碼或根據從先前預測的索引轉換的代碼],從而形成音訊訊號表示的至少一部分。
[例如,可以存在一處理區塊及/或一渲染區塊,其配置為在封包遺失控制器已確定至少一個當前封包具有正確格式的情況下,透過轉換至少一個轉換後的代碼來產生音訊訊號的至少一部分[例如透過至少一個可學習處理層、至少一個確定性層、或至少一個可學習處理層和至少一個確定性層]到音訊訊號的至少一部分上;以及一代碼預測器,其中處理區塊被配置為通過將至少一個預測代碼進行轉換到音訊訊號的至少一部分[例如透過至少一個可學習處理層、至少一個確定性層、或至少一個可學習處理層和至少一個確定性層],以生成音訊訊號的至少一部分]。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,其中至少一個碼本將索引與代碼或部分代碼相關聯,使得量化索引轉換器將從當前封包提取的至少一個索引轉換成至少一個轉換後代碼,或轉換後代碼的至少一部分。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,其中該至少一個碼本[如z
e、r
e、q
e]包括:
一基本碼本[如z
e],將多個索引關聯至多個主要部分代碼;以及
至少一個低階碼本[如一第一低階碼本(如r
e),可能是具有比第一低階碼本更低階的第二低階碼本,可能是具有比第二低階碼本更低階的第三低階碼本,可能是具有比第三低階碼本更低階的第四低階碼本;更多的碼本也是可能的],將多個索引關聯至多個剩餘部分代碼[如越低階,則剩餘部分代碼越多],
其中,從該當前封包中提取的該至少一索引包括至少一高階索引和至少一低階索引,
其中,該量化索引轉換器被配置為將該至少一高階索引轉換到該當前代碼的一主要部分上,並且將該至少一低階索引轉換到該當前代碼的至少一個剩餘部分上,
其中該量化索引轉換器更被配置為透過將該主要部分添加到該至少一個剩餘部分,來重建該當前代碼。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,被配置為至少根據至少一個在前封包或在後封包的該至少一個高階索引來預測該當前代碼,但不根據該至少一個在前封包或在後封包的至少一個最低階索引來預測該當前代碼。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,被配置為至少根據至少一個在前封包的該高階索引和至少一個中階索引來預測該當前代碼,但不根據該至少一個在前封包的一最低階索引來預測該當前代碼。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,被配置為儲存寫入該位元流的封包中但對應不同封包的冗餘資訊,該音訊訊號表示解碼器被配置為將該冗餘資訊儲存在一儲存單元中,
其中,該音訊訊號表示解碼器被配置為,在該至少一個當前封包被視為遺失的情況下,首先檢索該儲存單元,並且在檢索到對應該至少一個當前封包的該冗餘資訊的情況下:
從對應該當前封包的該冗餘資訊中檢索出至少一個索引;
使得該量化索引轉換器將從該至少一個碼本中檢索到的至少一個索引轉換為一替代碼,以便成為該音訊訊號表示的一部分。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,其中一冗餘資訊至少提供該至少一個在前封包或在後封包的該高階索引,但未提供該至少一個在前封包或在後封包的該低階索引中的至少一個。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,更包括至少一個可學習預測器,被配置為執行該預測,該至少一個可學習預測器具有該至少一個可學習預測器層。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,其中透過依序地預測來自多個在前封包及/或在後封包的多個已預測當前代碼或相應的多個當前索引,並且透過比較該等已預測當前代碼或從多個已預測索引中獲得的該等當前代碼與從已良好接收的封包轉換而來的轉換後代碼,來訓練該至少一個可學習預測器,以學習該至少一個可學習預測器層的多個可學習參數,該等可學習參數最小化該預測當前代碼相對於從具有正確格式的該等封包轉換而來的該等轉換後代碼的誤差。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,其中該至少一個可學習預測器層包括至少一個循環可學習層。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,其中該至少一個可學習預測器層包括至少一個門控循環單元。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,其中該至少一個可學習預測器層具有至少一種狀態,
沿著連續的複數個可學習預測器層實例迭代地實例化該至少一個可學習預測器層,
一當前可學習預測器層實例從至少一個在前可學習預測器層實例接收一狀態,其已預測至少一個在前封包的至少一個在前代碼,以便預測該至少一個當前代碼。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,其中為了預測該至少一個當前代碼,該當前可學習預測器層實例在一輸入中接收:
當該至少一個在前封包被認為是被良好接收時,接收該至少一個在前轉換後代碼;以及
當該至少一個在前封包被認為是遺失時,接收該至少一個在前預測代碼。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,其中為了預測該當前代碼,該當前可學習預測器層實例在當該至少一個在前封包被認為是良好接收時與當該至少一個在前封包被認為是遺失時,皆接收來自該至少一個在前迭代的該狀態。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,其中該至少一個可學習預測器層被配置為預測該當前代碼及/或在當該至少一個在前封包被認為是良好接收時與當該至少一個在前封包被認為是遺失時,皆從該至少一個在前可學習預測器層實例接收該狀態,以便提供該預測代碼及/或將該狀態輸出到至少一個後續的可學習預測器層實例。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,其中該當前可學習預測器層實例包括至少一個可學習卷積單元。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,其中該當前可學習預測器層實例包括至少一個可學習循環單元。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,其中該當前可學習層的該至少一個循環單元被輸入來自該至少一個在前可學習預測器層實例的對應的至少一個循環單元的狀態,並且輸出至少一個後續可學習預測器層實例的對應的至少一個循環單元的狀態。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,其中該當前可學習預測器層實例具有一系列之多個可學習層[例如,該系列的每個可學習層(除了最後一層外)都將處理後的代碼輸出到該系列的緊接著的一個後續層,並且該系列的最後一個可學習層將代碼輸出到緊接著的一個後續可學習預測器層實例]、[例如,對於每個可學習預測器層實例,除了最後一個可學習預測器層實例之外,該系列的每個可學習層將其狀態輸出到緊接著的一個可學習預測器層實例的相應可學習層]。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,其中對於該當前可學習預測器層實例,該系列之多個可學習層包括至少一個降維可學習層[如GRU2]和在該至少一個降維可學習層之後的至少一個增維可學習層[如FC][例如,使得可學習預測器層實例的輸出具有與可學習預測器層實例的輸入相同的維度]。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,其中該至少一個降維可學習層[如GRU2]包括具有一狀態的至少一個可學習層[例如,以這樣的方式,除了最後一個可學習預測器層實例之外,每個可學習預測器層實例將至少一個降維可學習層的狀態提供給緊接著的一個後續可學習層預測層實例的至少一個降維可學習層]。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,其中該至少一個增維可學習層[如FC]包括不具有一狀態的至少一個可學習層[例如,以這樣的方式,沒有預測器層實例將至少一個增維可學習層的狀態提供給緊接著的一個後續可學習預測器層實例的至少一個增維可學習層]。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,其中該系列之多個可學習層是門控的。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,其中該系列之多個可學習層透過softmax激活函數進行門控。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,被配置為從一位元流解碼一音訊訊號表示,該位元流被劃分為一序列之封包,音訊訊號表示解碼器包括:
一位元流讀取器[如索引擷取器],被配置為依序讀取該序列之封包,並從該至少一個當前封包中提取:
該至少一個當前封包的至少一索引;及
至少一個在前封包或在後封包的一冗餘資訊,該冗餘資訊允許在該至少一個在前封包或在後封包內重建至少一個索引、或由該索引提供的一資訊;
一封包遺失控制器(PLC),被配置為確認該至少一個當前封包是否被良好接收[例如具有正確格式]或是否被視為遺失[例如具有不正確格式];
一量化索引轉換器,被配置為[例如當封包遺失控制器確認該至少一個當前封包具有正確格式時]將該至少一個當前封包的該至少一個索引轉換為來自至少一個碼本的至少一個當前轉換後代碼[例如張量,或在特定情況下為向量,但在向量的情況下,其最好具有多個維度],從而形成該音訊訊號表示的一部分;以及
一冗餘資訊儲存單元,被配置為[例如透過至少一可學習層或一確定性層]儲存該冗餘資訊並且在當該封包遺失控制器已經確認該當前封包被視為遺失的情況下,提供該至少一個當前封包的儲存的該冗餘資訊,以利用該冗餘資訊形成該音訊訊號表示的一部分[冗餘資訊可以包括例如要由量化索引轉換器轉換的索引或索引的一部分,或先前已轉換的代碼或代碼的一部分]。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,其中該冗餘資訊儲存單元被配置為儲存來自一在前封包或一在後封包的至少一個索引以作為一冗餘資訊,以便在當該封包遺失控制器確認該至少一個當前封包被視為遺失時,將所儲存之該至少一個索引提供至該量化索引轉換器。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,其中該冗餘資訊儲存單元被配置為儲存先前從一在前封包或一在後封包提取的至少一個代碼或其一部分,以作為一冗餘資訊,以便在當該封包遺失控制器確認該至少一個當前封包被視為遺失時,利用所儲存之該代碼繞過該量化索引轉換器。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,其中該至少一個碼本將多個索引關聯至多個代碼或多個部分代碼,使得該量化索引轉換器將從該當前封包中提取的該至少一個索引轉換為該至少一個轉換後代碼、或該轉換後代碼的至少一部分。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,其中該至少一碼本[如z
e、r
e、q
e]包括:
一基本碼本[如z
e],將多個索引關聯至多個主要部分代碼;以及
至少一個低階碼本[例如,第一低階碼本(如r
e),並且可能是比第一低階碼本更低階的第二低階碼本,並且可能是比第二低階碼本更低階的第三低階碼書;可能是比第三低階碼本更低階的第四低階碼本;更多的碼本是可能的],將索引與剩餘部分代碼相關聯[例如越低階,剩餘部分代碼越多],
其中,從該當前封包中提取的該至少一索引包括至少一高階索引和至少一低階索引,
其中,該量化索引轉換器被配置為將該至少一高階索引轉換到該當前代碼的一主要部分上,並且將該至少一低階索引轉換到該當前代碼的至少一個剩餘部分上,
其中,該量化索引轉換器更被配置為透過將該主要部分添加到該至少一個剩餘部分,來重建該當前代碼。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,被配置為從該至少一個在前封包或在後封包的該至少一高階索引生成或取得該至少一個當前代碼,但不是從該至少一個在前封包或在後封包的最低階索引生成或取得該至少一個當前代碼。
在上述實施例中,部分實施態樣涉及一種音訊訊號表示解碼器,被配置為從該至少一個在前封包或在後封包的該至少一高階索引和至少一個中階索引生成或取得該至少一個當前代碼,但不是從該至少一個在前封包或在後封包的最低階索引生成或取得該至少一個當前代碼。
在上述實施例中,部分實施態樣涉及一種音訊產生器,用於從一位元流產生一音訊訊號,包括上述的音訊訊號表示解碼器,
更被配置為透過將該音訊訊號表示轉換到該音訊訊號來產生該音訊訊號。
在上述實施例中,部分實施態樣涉及一種音訊產生器,更被配置為渲染所產生的該音訊訊號。
在上述實施例中,部分實施態樣涉及一種音訊產生器,包括
一第一資料提供器,被配置為針對一給定幀提供從一輸入訊號導出的一第一資料[例如,來自外部或內部來源或來自音訊訊號表示][其中第一資料可以具有一個單一通道或多個通道;例如,第一資料可以與目標資料及/或與音訊訊號表示完全無關,而在其他實施例中,第一資料可以與音訊訊號表示具有某種關係,因為其可以從音訊訊號表示中取得];
一第一處理區塊,被配置為針對該給定幀接收該第一資料、並在該給定幀中輸出一第一輸出資料[其中,第一輸出資料可以包含一個單一通道或多個通道],
[例如,音訊產生器還包括一第二處理區塊,其被配置為針對給定幀接收第一輸出資料或從第一輸出資料匯出的資料作為第二資料]
其中,第一處理區塊包括:
[在某些情況下,至少一個預調節可學習層被配置為接收音訊訊號表示或其處理後版本,並且對於給定幀,輸出表示給定幀中的音訊訊號的目標資料[例如,對於給定幀具有多個通道和多個樣本]];
至少一調節可學習層,被配置為針對該給定幀處理來自解碼後的該音訊訊號表示的一目標資料,以獲得用於該給定幀的多個調節特徵參數;以及
一樣式元件,被配置為將該等調節特徵參數套用於該第一資料或一歸一化的第一資料
[其中,第二處理區塊(如果存在)可以配置為組合第二資料的多個通道以獲得音訊訊號],
[此至少一個預調節可學習層可以包括至少一個循環可學習層[例如,門控循環可學習層,例如門控循環單元,GRU]]
[例如,配置為從第一輸出資料或第一輸出資料的處理後版本取得音訊訊號]。
在上述實施例中,部分實施態樣涉及一種音訊產生器,被配置為使得音訊訊號的位元率大於目標資料及/或第一資料及/或第二資料兩者的位元率。
在上述實施例中,部分實施態樣涉及一種音訊產生器,其中第二處理區塊被配置為增加第二資料的位元率,以獲得音訊訊號[及/或其中第二處理區塊被配置為減少第二資料的通道數量,以獲得音訊訊號]。
在上述實施例中,部分實施態樣涉及一種音訊產生器,其中,第一處理區塊被配置為將第一資料從給定幀的樣本數量增加取樣到給定幀的第二樣本數量,第二樣本數量大於第一樣本數量。
在上述實施例中,部分實施態樣涉及一種音訊產生器,其中第二處理區塊被配置為將從第一處理區塊獲得的第二資料從給定幀的第二樣本數量增加取樣到給定幀的第三樣本數量,第三樣本數量大於第二樣本數量。
在上述實施例中,部分實施態樣涉及一種音訊產生器,被配置為將第一資料的通道數量從第一通道數量減少到第一輸出資料的第二通道數量,第二通道數量低於第一通道數量。
在上述實施例中,部分實施態樣涉及一種音訊產生器,其中第二處理區塊被配置為將從第一處理區塊獲得的第一輸出資料的通道數量從第二通道數量減少到音訊訊號的第三通道數量,其中第三通道數量低於第二通道數量。
在上述實施例中,部分實施態樣涉及一種音訊產生器,其中音訊訊號是單聲道音訊訊號。
在上述實施例中,部分實施態樣涉及一種音訊產生器,被配置為從音訊訊號表示獲得輸入訊號。
在上述實施例中,部分實施態樣涉及一種音訊產生器,被配置為從雜訊中取得輸入訊號。
在上述實施例中,部分實施態樣涉及一種音訊產生器,其中可學習層的調節集合包括一個或至少兩個卷積層。
在上述實施例中,部分實施態樣涉及一種音訊產生器,更包括至少一個預調節可學習層,其被配置為接收音訊訊號表示或其處理版本,並且對於給定幀,輸出表示給定幀中的音訊訊號的目標資料[例如,給定幀具有多個通道和多個樣本]。
在上述實施例中,部分實施態樣涉及一種音訊產生器,其中至少一個預調節可學習層被配置為將目標資料提供為頻譜圖或解碼頻譜圖。
在上述實施例中,部分實施態樣涉及一種音訊產生器,其中第一卷積層被配置為使用第一激活函數對目標資料或增加取樣的目標資料進行卷積以獲得第一卷積資料。
在上述實施例中,部分實施態樣涉及一種音訊產生器,其中調節可學習層和樣式元件是包括一個或多個剩餘區塊的神經網路的一個剩餘區塊中的權重層的一部分。
在上述實施例中,部分實施態樣涉及一種音訊產生器,其中音訊產生器更包括一歸一化元件,其被配置為對第一資料進行歸一化。
在上述實施例中,部分實施態樣涉及一種音訊產生器,其中音訊產生器更包括一歸一化元件,其被配置為在通道維度上對第一資料進行歸一化。
在上述實施例中,部分實施態樣涉及一種音訊產生器,其中音訊訊號為語音音訊訊號。
在上述實施例中,部分實施態樣涉及一種音訊產生器,其中將該目標資料依據一因子或另一因子進行增加取樣,其中該因子為2的冪,該另一因子例如為2.5或2.5的倍數。
在上述實施例中,部分實施態樣涉及一種音訊產生器,其中透過非線性插值對目標資料進行增加採樣。
在上述實施例中,部分實施態樣涉及一種音訊產生器,其中,第一處理區塊更包括:
另一組可學習層,被配置為使用第二激活函數處理從第一資料導出的資料,
其中第二激活函數是門控激活函數。
在上述實施例中,部分實施態樣涉及一種音訊產生器,其中另一組可學習層包括一個或兩個或更多的卷積層。
在上述實施例中,部分實施態樣涉及一種音訊產生器,其中第二激活函數是softmax門控雙曲正切(TanH)函數,在上述實施例中,部分實施態樣涉及一種音訊產生器,其中第一個激活函數是洩漏整流線性單元(leaky ReLu)函數。
在上述實施例中,部分實施態樣涉及一種音訊產生器,其中卷積運算以最大膨脹因子2運行。
在上述實施例中,部分實施態樣涉及一種音訊產生器,包括八個第一處理區塊和一個第二處理區塊。
在上述實施例中,部分實施態樣涉及一種音訊產生器,其中第一資料具有低於音訊訊號的維度。
在上述實施例中,部分實施態樣涉及一種音訊產生器,其中目標資料是頻譜圖。
在上述實施例中,部分實施態樣涉及一種編碼器,包括:
一音訊訊號表示產生器,被配置為透過至少一可學習層從一輸入音訊訊號產生至少一音訊訊號表示[例如,使用至少一個可學習層,例如一可學習層和一確定性層的組合],該音訊訊號表示包括一序列之張量[每個張量可以是向量,但如果張量是向量,則其至少應具有二維;每個張量/向量可能是一個代碼];
一量化器,被配置為將該序列之張量中的每個當前張量轉換為至少一個索引,其中每個該索引是從將複數個張量與複數個索引相關聯的至少一個碼本中所獲得的;
一位元流寫入器,被配置為將多個封包寫入一位元流中,使得一當前封包包括該序列之張量中的該當前張量的該至少一索引,
其中,該編碼器被配置為將該當前張量的一冗餘資訊寫入該位元流中與該當前封包不同的至少一個在前封包或在後封包中。
在上述實施例中,部分實施態樣涉及一種編碼器,其中該至少一個碼本將部分之多個張量關聯至多個索引,使得該量化器將該當前張量轉換為複數個索引。
在上述實施例中,部分實施態樣涉及一種編碼器,其中該至少一個碼本[如z
e、r
e、q
e]包括:
一基本碼本[如z
e],將多個主要部分張量關聯至多個索引;以及
至少一個低階碼本[例如,第一低階碼本(r
e)並且可能是比第一低階碼本更低階的第二低階碼本,並且可能是比第二低階碼本更低階的第三低階碼本;可能是比第三低階碼本更低階的第四低階碼本;更多的碼本是可能的],將多個剩餘部分張量關聯至多個索引,
其中該至少一當前張量具有至少一主要部分及至少一剩餘部分,
其中該量化器被配置為將該至少一個當前張量的該主要部分轉換成至少一個高階索引,並且將該至少一個張量的該至少一個剩餘部分轉換成至少一個低階序索引,
使得該位元流寫入器在該位元流中同時寫入該高階索引和該至少一個低階索引。
在上述實施例中,部分實施態樣涉及一種編碼器,被配置為提供具有該至少一個在前封包或在後封包的該至少一個或多個高階索引的該冗餘資訊,但不包括相同之該至少一個在前封包或在後封包的該最低階索引。
在上述實施例中,部分實施態樣涉及一種編碼器,被配置為透過一通訊頻道發送該位元流至一接收器[如音訊產生器]。
在上述實施例中,部分實施態樣涉及一種編碼器,被配置為監視該通訊頻道的一有效負載狀態,以便當該通訊頻道中的該有效負載狀態超過一預定閾值時,增加該冗餘資訊的數量。
在上述實施例中,部分實施態樣涉及一種編碼器,被配置為:
當該通訊頻道的該有效負載低於該預定閾值時,對於每個該當前封包僅傳輸該至少一個在前封包或在後封包的多個高階索引作為該冗餘資訊;及/或
當該通訊頻道的該有效負載超過該預定閾值時,對於每個該當前封包傳輸該至少一個在前封包或在後封包的該等高階索引和相同的該至少一個在前封包或在後封包的至少數個低階索引作為該冗餘資訊。
在上述實施例中,部分實施態樣涉及一種編碼器,被配置為至少根據該通訊頻道的該有效負載的函數來計算該當前封包與具有該冗餘資訊的該至少一個在前封包或在後封包之間的一封包偏移。
在上述實施例中,部分實施態樣涉及一種編碼器,被配置為至少根據一預設應用函數來計算該當前封包與具有該冗餘資訊的該至少一個在前封包或在後封包之間的一封包偏移。
在上述實施例中,部分實施態樣涉及一種編碼器,被配置為至少根據一終端用戶提供的一輸入函數來計算該當前封包與具有該冗餘資訊的該至少一個在前封包或在後封包之間的一封包偏移。
在上述實施例中,部分實施態樣涉及一種編碼器,其中該至少一個碼本包括將複數個張量與複數個索引相關聯的一冗餘碼本,其中該編碼器被配置為將該當前張量的該冗餘資訊寫入到該位元流中與該當前封包不同的該至少一個在前封包或在後封包中,以作為從該至少一個量化碼本接收的一索引。
圖式中的其他特徵圖1a和1b:在部分實施例中,其可能指的是神經端對端語音編解碼器(圖1a)和所述的PLCNet(圖1b)
圖2:在部分實施例中,其可以表示PLCNet的詳細方塊圖(括號中給出張量維度)
圖3:在部分實施例中,其可以表示用於NESC的前向錯誤修正方法
圖4:使用NESC對PLC進行MUSHRA聆聽測試
圖5:使用NESC對PLC和FEC進行P.800聆聽測試
變化態樣
這裡討論一些變化態樣及/或附加態樣或替代態樣。
本發明的實施例可以利用硬體或軟體來實現,該實現可以使用數位儲存媒體來執行,例如雲端儲存、磁碟、DVD、藍光DVD、CD、ROM、PROM、EPROM、EEPROM或FLASH記憶體,其具有儲存在其上的電子可讀控制訊號,其配合(或可配合)可編程計算機系統運作,從而執行相應的方法。因此,數位儲存媒體可以是電腦可讀的。
根據本發明的一些實施例包括具有電子可讀控制訊號的資料載體,其能夠配合可編程計算機系統運作,從而執行本發明所述的方法其中之一。
一般而言,本發明的實施例可以實現為具有程式碼的電腦程式產品,當電腦程式產品在電腦上運行時,該程式碼可操作用於執行該等方法其中之一,程式碼可以例如儲存在機器可讀載體上。
其他實施例包括儲存在機器可讀載體上的用於執行本發明所述的方法其中之一的電腦程式。換句話說,因此,該方法的實施例是具有程式碼的電腦程式,當電腦程式在電腦上運行時,該電腦程式用於執行本發明所述的方法之一。
因此,此方法的另一個實施例是資料載體(或數位儲存媒體、或電腦可讀媒體),其包括記錄在其上的用於執行本發明所述的方法之一的電腦程式。因此,另一個實施例是表示用於執行本發明所述的方法之一的電腦程式的資料流或訊號序列。資料流或訊號序列可以例如被配置為經由資料通訊連接(例如經由網際網路)傳送。另一個實施例包括處理裝置,例如電腦或可程式邏輯設備,其被配置為或適於執行本發明所述的方法之一。其他實施例包括其上安裝有用於執行本發明所述的方法之一的電腦程式的電腦。
在部分實施例中,可程式邏輯元件(例如現場可程式閘陣列)可以用於執行本發明所述的方法的一些或全部功能。在部分實施例中,現場可程式閘陣列可以與微處理器協作以便執行本發明所述的方法之一。一般來說,這些方法較佳地可由任何硬體裝置來執行。
上述實施例僅用於說明本發明的原理。應當理解,對本領域技術人員而言,這裡描述的各種修改和變化的配置及其細節將是顯而易見的。因此,其意圖是僅受限於後續的申請專利範圍,而不是受限於通過本說明書之實施例的描述和解釋所呈現的具體細節。
10:音訊產生器、解碼器、音訊解碼器
10a':逐幀分支
10b’:逐樣本分支
104:輸入訊號、音訊訊號、真實語音
105(105a-105d):視窗
100:GAN鑑別器、鑑別器
11:GAN產生器
110:偽正交鏡像濾波器庫、PQMF合成
1100:編碼器
1104:可學習音訊訊號表示產生器
112:音訊訊號表示、代碼、張量
1120:代碼
1122:碼本
1124:碼本
1124a:碼本
1124b:碼本
12:目標資料、第一資料、輸入訊號、目標訊號
12’:增加取樣版本、頻譜圖
120:子頻帶
1200:可學習代碼預測器、可學習預測器
1202:代碼
1204:代碼
1210:可學習預測器層實例、實例
12101:可學習預測器層實例、實例
12102:可學習預測器層實例、實例
12103:可學習預測器層實例、實例
1210n:可學習預測器層實例、實例
1211:輸入
1212:可學習層、層、循環單元、循環層
1214:可學習層、層、循環單元、循環層
1215:輸出、輸入值
1216:可學習卷積單元、可學習層、卷積層
1217:輸出值
1218:激活函數
1220:潛在值
1220’0、1220’1、1220’(n-1):輸入、代碼
1222:狀態
12221:狀態
12222:狀態
130:評估區塊
131:卷積層
132(132a-132d):評估器
134:卷積層
1300:解碼器
14:輸入訊號、雜訊、輸入資料、音訊訊號、輸入向量、目標訊號、輸入
140:損失函數、最小對抗性損失
15:第一資料
16:輸出音訊訊號、音訊訊號、語音、輸出訊號
1600:解碼器、編碼器
1600a, 1600b:編碼器
1602:輸入音訊訊號、音訊訊號、輸入訊號
1604:可學習音訊訊號表示產生器、音訊訊號產生器、音訊訊號表示產生器
1606:音訊訊號表示、張量
1608:量化器
1610:冗餘資訊儲存器
1610a:音訊訊號表示產生器
1610b:冗餘資訊儲存器、音訊訊號表示產生器
1612:冗餘資訊
1612b:冗餘資訊
1620:碼本
1620a:碼本
1620b:碼本
1622:碼本
1623:索引、碼本
1623b:索引
1624:碼本
1625:索引、碼本
1626:索引、主幀
1628:位元流寫入器
1628j:抖動緩衝器
1630:位元流
1640:網路、通訊頻道
1642:檢測器
1643:狀態
1644:控制器
1645:開關
1645’:控制
1700:解碼器、音訊產生器、音訊解碼器、GAN解碼器、音訊訊號表示解碼器
1702:位元流讀取器
1704:索引
1706:封包遺失控制器
1708:輸出、正確性資訊
1710:音訊訊號表示解碼器
17100:冗餘資訊儲存單元
1712:冗餘資訊、輸出
1714:冗餘資訊、輸入
1716:開關
1718:量化索引轉換器
1720:音訊訊號表示、代碼
1722:處理/渲染區塊、處理及/或渲染區塊
1724:音訊訊號
1800:音訊產生器、音訊訊號表示解碼器
1800a:音訊產生器、音訊訊號產生器、音訊訊號表示解碼器、解碼器、音訊解碼器
1800b:音訊訊號表示、解碼器、音訊解碼器、音訊產生器
1802a:位元流讀取器
1802b:位元流讀取器
1804a:索引
1804b:索引、輸出、代碼
1806a:封包遺失控制器
1806b:封包遺失控制器
1808a:正確性資訊
1808b:正確性資訊
1810:音訊訊號表示解碼器、可學習代碼預測器、可學習索引預測器
1810’:代碼
1810a:音訊訊號表示解碼器
1810aa:可學習代碼預測器
1810b:音訊訊號表示解碼器
1810bb:可學習索引預測器
1811a、1811a1、1811a2、1811a3、1811an:代碼
1811b:索引、輸出
1816a:開關
1816b:開關、索引
1816b':索引、箭頭、輸入
1818a:量化索引轉換器
1818aa:可學習代碼預測器
1818b:量化索引轉換器
1820:碼本
1820a:音訊訊號表示、代碼
1820a':箭頭、代碼、連接
1820a’0、1820a’1、1820a’2、1820a’(n-1)、1820a’n-1:代碼
1820b:音訊訊號表示、代碼
1822a:處理及/或渲染區塊
1822b:處理及/或渲染區塊
1824a:音訊訊號
1824b:音訊訊號
1830:位元流
3:位元流
30:通道映射、區塊
313:量化索引轉換器
40:第一處理區塊、第一調節區塊、區塊
42:區塊
44:區塊
44':音訊訊號
45:第二處理區塊
46:區塊
47:通道
49:樣本
50:第一處理區塊、區塊
50a, 50b, 50c, 50d, 50e, 50f, 50g, 50h:區塊
59:訊號
59a:訊號
59a':線、主要分量
59b:訊號
59c:門控版本
60a:區塊
60b:區塊
61b:區塊、卷積
62b:區塊、卷積
63b:活化函數
64b:活化函數
65b:區塊
65b’:剩餘部分、剩餘訊號
65c:加法器
69:第一輸出資料、輸出資料
70:增加取樣區塊
71:層、調節可學習層、區塊、可學習層、卷積
71’:中間值以
72:層、調節可學習層、區塊、可學習層、卷積
73:層、調節可學習層、區塊、可學習層、卷積
74:調節、調節特徵參數、特徵參數、參數、矩陣
75:調節、調節特徵參數、特徵參數、參數、矩陣
76:區塊
76’:訊號
77:區塊、樣式元件、元件
702:第一資料提供器、區塊
710:預調節可學習層、預處理層、預調節層
770:生成器網路層
900:區塊、門控激活
902:區塊、第二激活、第二門控激活
圖1a和1b顯示依據本揭露之PLC的實施例。
圖2顯示一種音訊訊號表示解碼器的技術。
圖3a和3b顯示位元流緩衝技術。
圖4和圖5顯示本實施例的評估結果。
圖6a和6b顯示音訊編碼器和音訊訊號表示編碼器的實施例。
圖7、8a和8b顯示音訊解碼器和音訊訊號表示解碼器的實施例。
圖9至13顯示音訊解碼器以及用於音訊解碼器和音訊訊號表示解碼器的技術的實施例。
1100:編碼器
1104:可學習音訊訊號表示產生器
1120:代碼
1122:碼本
1124:碼本
1124a:碼本
1124b:碼本
1300:解碼器
1600:解碼器、編碼器
1602:輸入音訊訊號、音訊訊號、輸入訊號
1604:可學習音訊訊號表示產生器、音訊訊號產生器、音訊訊號表示產生器
1608:量化器
1620:碼本
1622:碼本
1624:碼本
1630:位元流
1830:位元流
1700:解碼器、音訊產生器、音訊解碼器、GAN解碼器、音訊訊號表示解碼器
1724:音訊訊號
1824a:音訊訊號
1824b:音訊訊號
Claims (69)
- 一種音訊訊號表示解碼器,被配置為從一位元流解碼一音訊訊號表示,該位元流被劃分為一序列之多個封包,該音訊訊號表示解碼器包括: 一位元流讀取器,被配置為依序讀取該序列之該等封包; 一封包遺失控制器,被配置為確認一當前封包是否被良好接收或是否被視為遺失;以及 一量化索引轉換器,被配置為在該封包遺失控制器已經確認該當前封包被良好接收的情況下,將從該當前封包中提取到的至少一個索引轉換到來自至少一個碼本的至少一個當前代碼上,從而形成該音訊訊號表示的至少一部分;以及 其中,該音訊訊號表示解碼器被配置為在該封包遺失控制器已確認該當前封包被視為遺失的情況下,由至少一個可學習預測器層根據至少一個在前代碼或索引進行一預測來生成該至少一個當前代碼,從而形成該音訊訊號表示的至少一部分。
- 如請求項1所述的音訊訊號表示解碼器,其中該量化索引轉換器被配置為將複數個索引轉換為相應的複數個子張量,然後將該複數個子張量結合以獲得該至少一個當前代碼。
- 如請求項1所述的音訊訊號表示解碼器,其中該量化索引轉換器被配置為將複數個索引轉換為至少一主要部分代碼與至少一剩餘部分代碼,然後將該主要部分代碼與該至少一剩餘部分代碼結合以獲得該至少一個當前代碼。
- 如請求項1所述的音訊訊號表示解碼器,其中該至少一個碼本將多個索引關聯至多個代碼或多個部分代碼,使得該量化索引轉換器將從該當前封包中提取的該至少一個索引轉換為至少一個轉換後代碼、或一轉換後代碼的至少一部分。
- 如請求項1所述的音訊訊號表示解碼器,其中該至少一個碼本包括: 一基本碼本,將多個索引關聯至多個主要部分代碼或多個高階子代碼;以及 至少一個低階碼本,將多個索引關聯至多個剩餘部分代碼或多個低階子代碼, 其中,從該當前封包中提取的該至少一索引包括至少一高階索引和至少一低階索引, 其中,該量化索引轉換器被配置為將該至少一高階索引轉換到該當前代碼的一主要部分或一高階子代碼上,並且將該至少一低階索引轉換到該當前代碼的至少一個剩餘部分或一低階子代碼上,其中該量化索引轉換器更被配置為透過將該主要部分添加到該至少一個剩餘部分或透過將該高階子代碼與該至少一低階子代碼結合,來重建該當前代碼。
- 如請求項5所述的音訊訊號表示解碼器,被配置為至少根據至少一個在前封包或在後封包的該至少一個高階索引來預測該當前代碼,但不根據該至少一個在前封包或在後封包的至少一個最低階索引來預測該當前代碼。
- 如請求項5所述的音訊訊號表示解碼器,被配置為至少根據至少一個在前封包的該高階索引和至少一個中階索引來預測該當前代碼,但不根據該至少一個在前封包的一最低階索引來預測該當前代碼。
- 如請求項1所述的音訊訊號表示解碼器,被配置為儲存寫入該位元流的封包中但對應不同封包的冗餘資訊,該音訊訊號表示解碼器被配置為將該冗餘資訊儲存在一儲存單元中, 其中,該音訊訊號表示解碼器被配置為,在該至少一個當前封包被視為遺失的情況下,首先檢索該儲存單元,並且在檢索到對應該至少一個當前封包的該冗餘資訊的情況下: 從對應該當前封包的該冗餘資訊中檢索出至少一個索引; 使得該量化索引轉換器將從該至少一個碼本中檢索到的至少一個索引轉換為一替代碼,以便成為該音訊訊號表示的一部分。
- 如請求項8所述的音訊訊號表示解碼器,被配置為僅在未能從該儲存單元中檢索到該冗餘資訊的情況下,執行對該至少一個當前代碼的預測。
- 如請求項5所述的音訊訊號表示解碼器,其中一冗餘資訊至少提供該至少一個在前封包或在後封包的該高階索引,但未提供該至少一個在前封包或在後封包的該低階索引中的至少一個。
- 如請求項1所述的音訊訊號表示解碼器,更包括至少一個可學習預測器,被配置為執行該預測,該至少一個可學習預測器具有該至少一個可學習預測器層。
- 如請求項11所述的音訊訊號表示解碼器,其中透過依序地預測來自多個在前封包及/或在後封包的多個已預測當前代碼或相應的多個當前索引,並且透過比較該等已預測當前代碼或從多個已預測索引中獲得的該等當前代碼與從已良好接收的封包轉換而來的轉換後代碼,來訓練該至少一個可學習預測器,以學習該至少一個可學習預測器層的多個可學習參數,該等可學習參數最小化該預測當前代碼相對於從具有正確格式的該等封包轉換而來的該等轉換後代碼的誤差。
- 如請求項11所述的音訊訊號表示解碼器,其中該至少一個可學習預測器層包括至少一個循環可學習層。
- 如請求項11所述的音訊訊號表示解碼器,其中該至少一個可學習預測器層包括至少一個門控循環單元。
- 如請求項11所述的音訊訊號表示解碼器,其中該至少一個可學習預測器層包括至少一個神經網路或為至少一個神經網路的一部分。
- 如請求項11所述的音訊訊號表示解碼器,其中該至少一個可學習預測器層具有至少一種狀態, 沿著連續的複數個可學習預測器層實例迭代地實例化該至少一個可學習預測器層, 一當前可學習預測器層實例從至少一個在前可學習預測器層實例接收一狀態,其已預測至少一個在前封包的至少一個在前代碼,以便預測該至少一個當前代碼。
- 如請求項16所述的音訊訊號表示解碼器,其中為了預測該至少一個當前代碼,該當前可學習預測器層實例在一輸入中接收: 當該至少一個在前封包被認為是被良好接收時,接收該至少一個在前轉換後代碼;以及 當該至少一個在前封包被認為是遺失時,接收該至少一個在前預測代碼。
- 如請求項17所述的音訊訊號表示解碼器,其中為了預測該當前代碼,該當前可學習預測器層實例在當該至少一個在前封包被認為是良好接收時與當該至少一個在前封包被認為是遺失時,皆接收來自該至少一個在前迭代的該狀態。
- 如請求項16所述的音訊訊號表示解碼器,其中該至少一個可學習預測器層被配置為預測該當前代碼及/或在當該至少一個在前封包被認為是良好接收時與當該至少一個在前封包被認為是遺失時,皆從該至少一個在前可學習預測器層實例接收該狀態,以便提供該預測代碼及/或將該狀態輸出到至少一個後續的可學習預測器層實例。
- 如請求項16所述的音訊訊號表示解碼器,其中該當前可學習預測器層實例包括至少一個可學習卷積單元。
- 如請求項16所述的音訊訊號表示解碼器,其中該當前可學習預測器層實例包括至少一個可學習循環單元。
- 如請求項21所述的音訊訊號表示解碼器,其中該當前可學習層的該至少一個循環單元被輸入來自該至少一個在前可學習預測器層實例的對應的至少一個循環單元的狀態,並且輸出至少一個後續可學習預測器層實例的對應的至少一個循環單元的狀態。
- 如請求項16所述的音訊訊號表示解碼器,其中該當前可學習預測器層實例具有一系列之多個可學習層。
- 如請求項23所述的音訊訊號表示解碼器,其中對於該當前可學習預測器層實例,該系列之多個可學習層包括至少一個降維可學習層和在該至少一個降維可學習層之後的至少一個增維可學習層。
- 如請求項24所述的音訊訊號表示解碼器,其中該至少一個降維可學習層包括具有一狀態的至少一個可學習層。
- 如請求項24所述的音訊訊號表示解碼器,其中該至少一個增維可學習層包括不具有一狀態的至少一個可學習層。
- 如請求項23所述的音訊訊號表示解碼器,其中該系列之多個可學習層是門控的。
- 如請求項23所述的音訊訊號表示解碼器,其中該系列之多個可學習層透過softmax激活函數進行門控。
- 一種音訊訊號表示解碼器,被配置為從一位元流解碼一音訊訊號表示,該位元流被劃分為一序列之封包,音訊訊號表示解碼器包括: 一位元流讀取器,被配置為依序讀取該序列之封包,並從該至少一個當前封包中提取: 該至少一個當前封包的至少一索引;及 至少一個在前封包或在後封包的一冗餘資訊,該冗餘資訊允許在該至少一個在前封包或在後封包內重建至少一個索引、或由該索引提供的一資訊; 一封包遺失控制器,被配置為確認該至少一個當前封包是否被良好接收或是否被視為遺失; 一量化索引轉換器,被配置為將該至少一個當前封包的該至少一個索引轉換為來自至少一個碼本的至少一個當前轉換後代碼,從而形成該音訊訊號表示的一部分;以及 一冗餘資訊儲存單元,被配置為儲存該冗餘資訊並且在當該封包遺失控制器已經確認該當前封包被視為遺失的情況下,提供該至少一個當前封包的儲存的該冗餘資訊,以利用該冗餘資訊形成該音訊訊號表示的一部分。
- 如請求項29所述的音訊訊號表示解碼器,其中該量化索引轉換器被配置為將複數個索引轉換為相應的複數個子張量,然後將該複數個子張量結合以獲得該至少一個當前代碼。
- 如請求項29所述的音訊訊號表示解碼器,其中該量化索引轉換器被配置為將複數個索引轉換為至少一主要部分代碼與至少一剩餘部分代碼,然後將該主要部分代碼與該至少一剩餘部分代碼結合以獲得該至少一個當前代碼。
- 如請求項29所述的音訊訊號表示解碼器,其中該至少一個碼本將多個索引關聯至多個代碼或多個部分代碼,使得該量化索引轉換器將從該當前封包中提取的該至少一索引轉換為至少一轉換後代碼、或一轉換後代碼的至少一部分。
- 如請求項29所述的音訊訊號表示解碼器,其中該至少一碼本包括: 一基本碼本,將多個索引關聯至多個主要部分代碼或多個高階子代碼;以及 至少一個低階碼本,將多個索引關聯至多個剩餘部分代碼或多個低階子代碼, 其中,從該當前封包中提取的該至少一索引包括至少一高階索引和至少一低階索引, 其中,該量化索引轉換器被配置為將該至少一高階索引轉換到該當前代碼的一主要部分或一高階子代碼上,並且將該至少一低階索引轉換到該當前代碼的至少一個剩餘部分或一低階子代碼上,其中該量化索引轉換器更被配置為透過將該主要部分添加到該至少一個剩餘部分或透過將該高階子代碼與該至少一低階子代碼結合,來重建該當前代碼。
- 如請求項29所述的音訊訊號表示解碼器,被配置為讀取一信令,該信令指出該當前封包與具有至少作為通訊通道的有效負載函數的該冗餘資訊的該至少一個在前封包 或在後封包之間的一封包偏移,使得該冗餘資訊儲存單元或該音訊訊號表示解碼器的另一個組件重建該冗餘資訊所相關的該封包並儲存與該冗餘資訊所相關的該封包相關聯的該冗餘資訊。
- 如請求項29所述的音訊訊號表示解碼器,其中該冗餘資訊儲存單元被配置為儲存來自一在前封包或一在後封包的至少一個索引以作為一冗餘資訊,以便在當該封包遺失控制器確認該至少一個當前封包被視為遺失時,將所儲存之該至少一個索引提供至該量化索引轉換器。
- 如請求項29所述的音訊訊號表示解碼器,其中該冗餘資訊儲存單元被配置為儲存先前從一在前封包或一在後封包提取的至少一個代碼或其一部分,以作為一冗餘資訊,以便在當該封包遺失控制器確認該至少一個當前封包被視為遺失時,利用所儲存之該代碼繞過該量化索引轉換器。
- 如請求項29所述的音訊訊號表示解碼器,其中該至少一個碼本將多個索引關聯至多個代碼或多個部分代碼,使得該量化索引轉換器將從該當前封包中提取的該至少一個索引轉換為該至少一個轉換後代碼、或該轉換後代碼的至少一部分。
- 如請求項29所述的音訊訊號表示解碼器,其中該至少一碼本包括: 一基本碼本,將多個索引關聯至多個主要部分代碼;以及 至少一個低階碼本, 其中,從該當前封包中提取的該至少一索引包括至少一高階索引和至少一低階索引, 其中,該量化索引轉換器被配置為將該至少一高階索引轉換到該當前代碼的一主要部分或一高階子代碼上,並且將該至少一低階索引轉換到該當前代碼的至少一個剩餘部分或一高階子代碼上, 其中該量化索引轉換器更被配置為透過將該主要部分添加到該至少一個剩餘部分或透過將該至少一高階子代碼與該至少一低階子代碼結合,或是透過將該至少一個高階子代碼與該至少一低階子代碼結合或透過將該高階子代碼與該至少一低階子代碼結合,來重建該當前代碼。
- 如請求項38所述的音訊訊號表示解碼器,被配置為從該至少一個在前封包或在後封包的該至少一高階索引生成或取得該至少一個當前代碼,但不是從該至少一個在前封包或在後封包的最低階索引生成或取得該至少一個當前代碼。
- 如請求項38所述的音訊訊號表示解碼器,被配置為從該至少一個在前封包或在後封包的該至少一高階索引和至少一個中階索引生成或取得該至少一個當前代碼,但不是從該至少一個在前封包或在後封包的最低階索引生成或取得該至少一個當前代碼。
- 一種音訊產生器,用於從一位元流產生一音訊訊號,包括如請求項1或29所述的音訊訊號表示解碼器, 更被配置為透過將該音訊訊號表示轉換到該音訊訊號來產生該音訊訊號。
- 如請求項41所述的音訊產生器,更被配置為渲染所產生的該音訊訊號。
- 如請求項41所述的音訊產生器,包括 一第一資料提供器,被配置為針對一給定幀提供從一輸入訊號導出的一第一資料; 一第一處理區塊,被配置為針對該給定幀接收該第一資料、並在該給定幀中輸出一第一輸出資料, 更包括: 至少一調節可學習層,被配置為針對該給定幀處理來自解碼後的該音訊訊號表示的一目標資料,以獲得用於該給定幀的多個調節特徵參數;以及 一樣式元件,被配置為將該等調節特徵參數套用於該第一資料或一歸一化的第一資料。
- 如請求項43所述的音訊產生器,被配置為從一雜訊中獲得該輸入訊號。
- 如請求項41所述的音訊產生器,更包括至少一預調節可學習層,被配置為接收該音訊訊號表示並輸出表示該音訊訊號的一目標資料。
- 如請求項45所述的音訊產生器,其中該至少一預調節可學習層被配置為提供該目標資料以作為一頻譜圖或一解碼後頻譜圖。
- 如請求項41所述的音訊產生器,其中一第一卷積層被配置為使用一第一激活函數對該目標資料或一增加取樣的目標資料進行卷積以獲得一第一卷積資料。
- 如請求項41所述的音訊產生器,更包括一歸一化元件,其被配置為歸一化該第一資料。
- 如請求項41所述的音訊產生器,其中該目標資料包括一頻譜圖。
- 一種編碼器,包括: 一音訊訊號表示產生器,被配置為透過至少一可學習層產生一音訊訊號表示以作為一音訊訊號的一表示,該音訊訊號表示包括一序列之張量; 一量化器,被配置為將該序列之張量中的每個當前張量轉換為至少一個索引,其中每個該索引是從將複數個張量與複數個索引相關聯的至少一個碼本中所獲得的; 一位元流寫入器,被配置為將多個封包寫入一位元流中,使得一當前封包包括該序列之張量中的該當前張量的該至少一索引, 其中,該編碼器被配置為將該當前張量的一冗餘資訊寫入該位元流中與該當前封包不同的至少一個在前封包或在後封包中,及/或將與該當前張量不同的一張量的一冗餘資訊寫入該當前封包。
- 如請求項50所述的編碼器,其中該至少一個碼本將部分之多個張量關聯至多個索引,使得該量化器將該當前張量轉換為複數個索引。
- 如請求項50所述的編碼器,其中該至少一個碼本包括: 一基本碼本,將多個主要部分張量關聯至多個索引;以及 至少一個低階碼本,將多個剩餘部分張量關聯至多個索引, 其中該至少一當前張量具有至少一主要部分及至少一剩餘部分, 其中該量化器被配置為將該至少一個當前張量的該主要部分轉換成至少一個高階索引,並且將該至少一個張量的該至少一個剩餘部分轉換成至少一個低階序索引, 使得該位元流寫入器在該位元流中同時寫入該高階索引和該至少一個低階索引。
- 如請求項52所述的編碼器,被配置為提供具有該至少一個在前封包或在後封包的該至少一個或多個高階索引的該冗餘資訊,但不包括相同之該至少一個在前封包或在後封包的該最低階索引。
- 如請求項50所述的編碼器,被配置為將該當前張量分割為多個子張量,以便量化每個該等子張量。
- 如請求項50所述的編碼器,被配置為將該當前張量分解為一主要部分與至少一剩餘部分之間,以量化該主要部分與該至少一剩餘部分。
- 如請求項50所述的編碼器,被配置為透過一通訊頻道發送該位元流。
- 如請求項56所述的編碼器,被配置為監視該通訊頻道的一有效負載狀態,以便當該通訊頻道中的該有效負載狀態超過一預定閾值時,增加該冗餘資訊的數量。
- 如請求項52所述的編碼器,被配置為: 當該通訊頻道的該有效負載低於該預定閾值時,對於每個該當前封包僅傳輸該至少一個在前封包或在後封包的多個高階索引作為該冗餘資訊;及/或 當該通訊頻道的該有效負載超過該預定閾值時,對於每個該當前封包傳輸該至少一個在前封包或在後封包的該等高階索引和相同的該至少一個在前封包或在後封包的至少數個低階索引作為該冗餘資訊。
- 如請求項57所述的編碼器,被配置為至少根據該通訊頻道的該有效負載的函數來計算該當前封包與具有該冗餘資訊的該至少一個在前封包或在後封包之間的一封包偏移。
- 如請求項57所述的編碼器,被配置為至少根據一預設應用函數來計算該當前封包與具有該冗餘資訊的該至少一個在前封包或在後封包之間的一封包偏移。
- 如請求項57所述的編碼器,被配置為至少根據一終端用戶提供的一輸入函數來計算該當前封包與具有該冗餘資訊的該至少一個在前封包或在後封包之間的一封包偏移。
- 如請求項58所述的編碼器,被配置為至少根據該通訊頻道的該有效負載計算該當前封包與具有該冗餘資訊的該至少一個在前封包或在後封包之間的一封包偏移,以使得當該通訊頻道中的該有效負載越高,或該通訊頻道中的一錯誤率越高時,該封包偏移就越高。
- 如請求項50所述的編碼器,其中該至少一個碼本包括將複數個張量與複數個索引相關聯的一冗餘碼本,其中該編碼器被配置為將該當前張量的該冗餘資訊寫入到該位元流中與該當前封包不同的該至少一個在前封包或在後封包中,以作為從該至少一個量化碼本接收的一索引。
- 一種解碼音訊訊號表示的方法,用於從一位元流解碼一音訊訊號表示,該方法包括: 讀取該位元流中包含的一序列之封包,並從一當前封包中提取: 該當前封包的至少一個索引;及 在至少一個在前封包或在後封包中的一冗餘資訊,該冗餘資訊允許重構在該至少一個在前封包或在後封包內的至少一個索引; 確認該當前封包是否被良好接收或被視為遺失; 將該當前封包的該至少一個索引轉換為來自至少一個碼本的至少一個當前轉換後代碼,從而形成該音訊訊號表示的一部分; 儲存該冗餘資訊,並且在確認後判斷該至少一個當前封包被視為遺失時提供該至少一個當前封包中所儲存的該冗餘資訊,以利用該冗餘資訊來形成該音訊訊號表示的一部分。
- 一種解碼音訊訊號表示的方法,用於從一位元流解碼一音訊訊號表示,該位元流被劃分為一序列之封包,該方法包括: 依序讀取該序列之封包; 確認一當前封包是否被良好接收或是否被視為遺失; 當確認該當前封包被良好接收時,將從該當前封包提取的至少一個索引轉換為來自至少一個碼本的至少一個當前代碼,從而形成該音訊訊號表示的至少一部分;以及 當確認該當前封包被視為遺失時,通過至少一個可學習預測器層以利用來自至少一個在前代碼或索引的預測來產生至少一個當前代碼。
- 一種方法,包括: 透過至少一個可學習層產生一音訊訊號表示作為一音訊訊號的一表示,該音訊訊號表示包括一序列之張量; 將該序列之張量中的每個當前張量轉換為至少一個索引,其中各該索引是從將複數個張量與複數個索引相關聯的至少一個碼本獲得的;以及 將多個封包寫入一位元流中,使得一當前封包包括該序列之張量中的該當前張量的該至少一個索引, 其中,該方法包括將該當前張量的一冗餘資訊寫入該位元流中與該當前封包不同的至少一個在前封包或在後封包中,及/或將至少一個待寫入之張量的一冗餘資訊寫入該位元流中與該當前封包不同的至少一個在前封包或在後封包中。
- 一種非暫時性儲存單元,用以儲存多個指令,當該等指令被一電腦執行時,該電腦進行下列步驟: 從一當前封包中提取: 該當前封包的至少一個索引;及 在至少一個在前封包或在後封包中的一冗餘資訊,該冗餘資訊允許重構在該至少一個在前封包或在後封包內的至少一個索引; 確認該當前封包是否被良好接收或被視為遺失; 將該當前封包的該至少一個索引轉換為來自至少一個碼本的至少一個當前轉換後代碼,從而形成該音訊訊號表示的一部分; 控制以儲存該冗餘資訊,並且在確認後判斷該至少一個當前封包被視為遺失時擷取該至少一個當前封包中所儲存的該冗餘資訊,以利用該冗餘資訊來形成該音訊訊號表示的一部分。
- 一種非暫時性儲存單元,用以儲存多個指令,當該等指令被一電腦執行時,該電腦進行下列步驟: 依序讀取一序列之封包; 確認一當前封包是否被良好接收或是否被視為遺失; 當確認該當前封包被良好接收時,將從該當前封包提取的至少一個索引轉換為來自至少一個碼本的至少一個當前代碼,從而形成該音訊訊號表示的至少一部分;以及 當確認該當前封包被視為遺失時,通過至少一個可學習預測器層以利用來自至少一個在前代碼或索引的預測來產生至少一個當前代碼。
- 一種非暫時性儲存單元,用以儲存多個指令,當該等指令被一電腦執行時,該電腦進行下列步驟: 透過至少一個可學習層產生一音訊訊號表示作為一音訊訊號的一表示,該音訊訊號表示包括一序列之張量; 將該序列之張量中的每個當前張量轉換為至少一個索引,其中各該索引是從將複數個張量與複數個索引相關聯的至少一個碼本獲得的; 將多個封包寫入一位元流中,使得一當前封包包括該序列之張量中的該當前張量的該至少一個索引;以及 將該當前張量的一冗餘資訊寫入該位元流中與該當前封包不同的至少一個在前封包或在後封包中,及/或將至少一個待寫入之張量的一冗餘資訊寫入該位元流中與該當前封包不同的至少一個在前封包或在後封包中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
WOPCT/EP2022/087807 | 2022-12-23 | ||
PCT/EP2022/087807 WO2024132187A1 (en) | 2022-12-23 | 2022-12-23 | Error resilient tools for audio encoding/decoding |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202427458A true TW202427458A (zh) | 2024-07-01 |
Family
ID=84888783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112148750A TW202427458A (zh) | 2022-12-23 | 2023-12-14 | 用於音訊編碼/解碼的錯誤恢復工具 |
Country Status (2)
Country | Link |
---|---|
TW (1) | TW202427458A (zh) |
WO (2) | WO2024132187A1 (zh) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112751648B (zh) * | 2020-04-03 | 2023-09-19 | 腾讯科技(深圳)有限公司 | 丢包数据恢复方法和相关装置、设备及存储介质 |
-
2022
- 2022-12-23 WO PCT/EP2022/087807 patent/WO2024132187A1/en unknown
-
2023
- 2023-12-14 TW TW112148750A patent/TW202427458A/zh unknown
- 2023-12-14 WO PCT/EP2023/085982 patent/WO2024132889A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024132889A1 (en) | 2024-06-27 |
WO2024132187A1 (en) | 2024-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI405187B (zh) | 可縮放語音及音訊編碼解碼器、包括可縮放語音及音訊編碼解碼器之處理器、及用於可縮放語音及音訊編碼解碼器之方法及機器可讀媒體 | |
JP5186054B2 (ja) | マルチステージコードブックおよび冗長コーディング技術フィールドを有するサブバンド音声コーデック | |
TWI407432B (zh) | 用於可縮放的語言及音頻編碼之方法、器件、處理器及機器可讀媒體 | |
US8639519B2 (en) | Method and apparatus for selective signal coding based on core encoder performance | |
JP5285162B2 (ja) | ピーク検出に基づいた選択型スケーリングマスク演算 | |
KR20080011216A (ko) | 오디오 코덱 포스트 필터의 컴퓨터 구현 방법 | |
JP2002526798A (ja) | 複数チャネル信号の符号化及び復号化 | |
EP2206112A1 (en) | Method and apparatus for generating an enhancement layer within an audio coding system | |
WO2010077542A1 (en) | Method and apprataus for generating an enhancement layer within a multiple-channel audio coding system | |
EP2382622A1 (en) | Method and apparatus for generating an enhancement layer within a multiple-channel audio coding system | |
EP2382626A1 (en) | Selective scaling mask computation based on peak detection | |
CN119698656A (zh) | 声码器技术 | |
CN109427338B (zh) | 立体声信号的编码方法和编码装置 | |
JP2018511086A (ja) | オーディオ信号を符号化するためのオーディオエンコーダー及び方法 | |
TW202427458A (zh) | 用於音訊編碼/解碼的錯誤恢復工具 | |
JP2003323200A (ja) | 音声符号化のための線形予測係数の勾配降下最適化 | |
TW202501468A (zh) | 音訊寫碼之純量量化技術 | |
WO2024245551A1 (en) | Scalar quantization for audio coding | |
JP3984021B2 (ja) | 音声/音響信号の符号化方法及び電子装置 | |
CN119152863A (zh) | 基于神经网络的音频编解码方法、装置、设备及存储介质 |