ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Google AI Blog(논문) 리뷰: SoundStream (An End-to-End Neural Audio Codec)
    최신 기술동향/인공지능 (AI) 2021. 8. 14. 11:24
    반응형

     AI에 대해 독보적인 기술력을 갖고있는 Google은 AI을 이용한 다양한 자사의 연구내용을 소개하는 Google AI Blog [1]를 운영한다. 이번 글에서는 Google AI Blog에 올라온 기술 중에 가장 최신인 Neural Network (NN)를 이용한 Audio Codec에 대해 분석하고 소개하고자 한다. 기술에 대한 원문은 논문 [2]으로도 공개가 되어 arxiv에 올라와 있다.

     Codec은 보통 Encoding / Decoding을 합친 표현으로 송신단에서 데이터를 압축하여 전송하고, 수신단에서 압축된 데이터를 통해 원래 데이터로 복구하는 프로토콜이다. 즉, 무선이든 유선이든 특정 네트워크를 통과해서 전달이 되어야하기 때문에 Multi-user가 해당 네트워크를 공유하는 상황에서는 적은 데이터 전송량으로 data를 전송할 수 있어야 한다. 따라서, codec이 얼마나 효율적으로 설계되었냐를 나타내는 지표는 '얼마나 적은 전송량(압축 多)으로, 얼마나 원래 데이터에 가깝게 (손실 少) 복구할 수 있냐에 달려있다.' 하지만, 보통 압축을 많이할수록 수신단에서 데이터가 많이 깨지기 때문에 Trade-off 관계가 있을 수 밖에 없다. 압축의 효율성을 높이기 위해 나온 기존의 Audio Codec들은 Signal Process 전문가들이 domain 지식들을 동원해서, hand-craft 설계를 했다. 하지만, 이 글에서 SoundStream가 이런 hand-craft방식을 NN로 대체하여, Real-Time으로 Smartphone CPU에서 작동하는 첫번째 모델이라고 소개한다.

     Soundstream의 NN 구조는 Data Compression 및 Anomaly Detection에서 자주 사용되는 AutoEncoder 방식을 사용한다. 즉, 아래 그림처럼 송신단에서 Encoder를 통해 Data를 압축해서 Vector를 만들고, Vector를 수신단에서 원래 Data로 복구하는 형태로 이루어진다. 이 Autoencoder를 학습시키기 위해 GAN 방식의 학습이 고려된다. Generative Adversarial Network (GAN)을 소개하면서, Generator가 만든 이미지를 Discriminator가 real인지 fake인지 맞추는 방식으로 두 Generator와 Discriminator 2개의 NN을 동시에 학습시킨다고 설명했었다. Soundstream에서도 Discriminator가 'Rx에서 복구한 Audio'와 'Tx에 들어온 원래 Audio'를 맞추는 방식으로 학습되고, AutoEncoder는 Discriminator가 맞출 수 없도록 Rx에서 복구한 Audio가 최대한 원래 Audio와 같게 weight를 학습시켜나간다. 이를 위한 Generator의 loss function도 [2]의 6페이지에 소개되어 있다.

    Soundstream의 NN 구조도

     Soundstream의 전체적인 NN 구조도는 파악을 해봤으니, 이를 구성하는 AutoEncoder의 구조를 볼 차례다. 꽤 길게 그림이 그려져 있지만, 결국은 Convolution Nueral Network (CNN)구조로 이루어져있음을 알 수 있다. 또한, 가로, 세로가 있는 이미지 데이터인 2D data와는 달리 시간축에 따른 신호의 세기인 1D Data를 다루기 때문에, 1D-Convolution을 썼음을 알 수 있다. 또한, 이 논문에서 강조했던 Real-Time을 위해 Causal Convolution을 썼다고 얘기한다. 신호 및 시스템 시간에 나오는 Causal의 의미는 쉽게 말하면 '과거의 정보만을 Input으로 받아들이는 시스템'이다. 지금 바로 Inference를 해야하는데, 미래의 Signal을 받아들이는 것은 infeasible 하기 때문에, Causal Conv.를 많이 사용한다.(e.g., Wavenet) ResidualUnit은 CNN의 Residual Network에서 볼 수 있는것처럼 bypass를 사용하는 구조다.

     Feature Elment-wise Linear Modulation (FiLM) [3]은 보통 다른 정보들 (multi-modal)을 다룰 때 많이 활용되는데, 여기서는 De-noising의 level을 조절하기 위해서 사용되어, 알파와 감마값을 설정하게 되어있다.

    AutoEncoder의 NN 구조도

     이렇게 다양한 bitrate, de-noising factor를 갖고 있을때에 대해 실험을 진행했고, 기존의 기법들 EVS, Opus보다 더 적은 bitrate로 충분한 QoS를 확보했음을 보여줬다. 여기서 나오는 MUSHRA score는 QoS의 indicator라고 한다.

    SoundStream 성능그래프

    Conclusion

     이번 글에서는 Google AI Blog에서 소개한 NN-based Audio Codec인 SoundStream에 대해 리뷰해보았다. 최근 이슈가 되고 있는 메타버스의 큰 축인 AR/VR 등, 짧은 시간안에 많은 데이터량을 전송하는 Real-Time service를 위한 Audio, Video Codec의 중요성이 커지고 있다. 또한, 이 블로그에 소개된 바와 같이 최근 Conference Call을 하는 경우가 많아지고 있기 때문에, Audio를 위한 Codec도 중요해지고 있다. 이 경우, 더 짧은 지연시간으로 Encoding과 Decoding이 이루어져야 하기 때문에, 예전보다 더 발전한 기술들이 필요하다. Google AI Blog 포스팅 말미에 이전 버전인 Lyra와 SoundStream을 Experimental을 위해 Tensorflow로 공개할 예정이라 하니, 나중에 한번 사용해보면 좋을 것 같다.

     

    Reference

    1. https://ai.googleblog.com/2021/08/soundstream-end-to-end-neural-audio.html

     

    SoundStream: An End-to-End Neural Audio Codec

    Posted by Neil Zeghidour, Research Scientist and Marco Tagliasacchi, Staff Research Scientist, Google Research Audio codecs are used to e...

    ai.googleblog.com

    2. Neil Zeghidour, Alejandro Luebs, Ahmed Omran, Jan Skoglund, Macro Tagliasacchi, "SoundStream: An End-to-End Neural Audio Codec", arXiv:2107.03312, July 2021. 

    3. Perez, E., Strub, F., de Vries, H., Dumoulin, V., Courville, A. "Film: Visual reasoning with a general conditioning layer", AAAI, 2018

    반응형

    댓글

Designed by Tistory.