0

Paper reading | Tạo âm thanh từ văn bản sử dụng Latent Diffusion Models

Giới thiệu

Tạo hiệu ứng âm thanh, nhạc, hoặc giọng nói theo yêu cầu là 1 ý tưởng hay cho các ứng dụng như thực tế tăng cường, thực tế ảo, phát triển trò chơi và chỉnh sửa video. Trước đây, việc tạo âm thanh thường được thực hiện thông qua các kỹ thuật xử lý tín hiệu. Thời gian gần đây, chúng ta đã có những mô hình Generative AI mạnh mẽ, giúp xử lý các task này 1 cách đơn giản hơn 😄

Các nghiên cứu trước đây thường chỉ tạo âm thanh dựa trên một số nhãn âm thanh cố định. Tuy nhiên, việc sử dụng ngôn ngữ tự nhiên giúp ta có thể mô tả chi tiết hơn về âm thanh, ví dụ như "tiếng chim hót nhẹ nhàng trong rừng vào buổi sáng" hoặc "tiếng sóng vỗ bờ biển vào một ngày lặng gió".

Nhiệm vụ tạo âm thanh dựa trên mô tả ngôn ngữ tự nhiên này được gọi là tạo âm thanh từ văn bản (text-to-audio, TTA). Điều này cho phép tạo ra các âm thanh phức tạp và chi tiết hơn dựa trên mô tả cụ thể từ ngôn ngữ tự nhiên.

Các hệ thống TTA được thiết kế để tạo ra nhiều loại tín hiệu âm thanh phức tạp. Để mô hình hóa dữ liệu hiệu quả, nhóm tác giả sử dụng phương pháp tương tự như DiffSound, đó là áp dụng learned discrete representation để biểu diễn các tín hiệu âm thanh cao chiều (high-dimensional). Bên cạnh đó, nhóm tác giả cũng lấy cảm hứng từ những tiến bộ gần đây trong mô hình autoregressive áp dụng learned discrete representation trên waveform, chẳng hạn như AudioGen (mạnh hơn mô hình DiffSound 😄)

Đặc biệt, sử dụng sức mạnh của model StableDiffusion trong việc tạo ra hình ảnh chất lượng cao 😄 nhóm tác giả mở rộng phương pháp TTA sang biểu diễn liên tục (continous) thay vì rời rạc (discrete). Điều này giúp tạo ra âm thanh chất lượng cao và chính xác hơn.

Các nghiên cứu trước đây về TTA có 1 hạn chế tiềm năng về chất lượng là yêu cầu phải có các cặp dữ liệu âm thanh-văn bản chất lượng cao và quy mô lớn, vốn thường không sẵn có hoặc có chất lượng và số lượng hạn chế. Để tận dụng dữ liệu chất lượng thấp, một số phương pháp tiền xử lý văn bản đã được đề xuất. Tuy nhiên, các bước tiền xử lý này làm giảm hiệu suất tạo âm thanh do bỏ qua mối quan hệ giữa các sự kiện âm thanh.

Ngược lại, phương pháp đề xuất trong bài báo chỉ cần dữ liệu âm thanh để huấn luyện mô hình generative, hạn chế được thách thức của việc tiền xử lý văn bản và đạt hiệu suất tốt hơn so với việc sử dụng dữ liệu dạng cặp âm thanh-văn bản. Nhóm tác giả giới thiệu hệ thống TTA có tên AudioLDM, giúp tạo audio chất lượng cao sử dụng mô hình Latent Diffusion. Ngoài ra, phương pháp này cũng cho phép chỉnh sửa audio sử dụng ngôn ngữ tự nhiên luôn 😄

Text-Conditional Audio Generation

image.png

Contrastive Language-Audio Pretraining

Các mô hình generate hình ảnh từ văn bản hiện nay đã cho ra kết quả rất ấn tượng bằng cách sử dụng phương pháp Contrastive Language-Image Pretraining (CLIP). Lấy cảm hứng từ điều này, nhóm tác giả sử dụng phương pháp Contrastive Language-Audio Pretraining (CLAP) cho bài toán TTA.

Với mẫu âm thanh là xx và văn bản mô tả là yy. Ta sẽ sử dụng 1 bộ text encoder và 1 bộ audio encoder để trích xuất embedding văn bản EyE_y và embedding âm thanh ExE_x, với LL là kích thước của embedding CLAP. Nhóm tác giả sử dụng audio encoder là HT-SAT và text encoder là RoBERTa. Nhóm tác giả cũng sử dụng loss function là symmetric cross-entropy loss.

Sau khi huấn luyện mô hình CLAP, mẫu âm thanh xx có thể được chuyển thành embedding ExE_x trong không gian embedding liên kết giữa âm thanh và văn bản. Mô hình CLAP có khả năng tổng quát tốt thể hiện ở các task như zero-shot audio classification.

Conditional Latent Diffusion Models

Hệ thống TTA có thể tạo ra một mẫu âm thanh x^\hat{x} dựa trên văn bản mô tả yy. Với các mô hình LDMs, nhóm tác giả sẽ so sánh true conditional data distribution q(z0Ey)q(z_0 | E^y) với model distribution pθ(z0Ey)p_\theta(z_0 | E^y), trong đó z0RC×Tr×Frz_0 \in \mathbb{R}^{C \times \frac{T}{r} \times \frac{F}{r}} là compressed representation của mẫu âm thanh xx trong không gian mel-spectrogram XRT×FX \in \mathbb{R}^{T \times F}, và EyE^y là embedding văn bản có được từ pretrained text encoder ftext()f_{\text{text}}(\cdot) trong CLAP.

Ở đây, rr biểu thị mức độ nén, CC biểu thị kênh của biểu diễn nén, TTFF biểu thị các kích thước thời gian và tần số trong mel-spectrogram XX. Với CLAP đã được pretrained để embed đồng thời thông tin âm thanh và văn bản, audio embedding ExE^x và text embedding EyE^y sẽ chia sẻ một không gian mô hình chung giữa các phương thức (multi-modal). Điều này cho phép nhóm tác giả sử dụng ExE^x để huấn luyện các LDM, và dùng EyE^y để tạo TTA.

Nhắc lại 1 chút, Diffusion models bao gồm 2 quá trình chính:

  • Forward process: Chuyển đổi phân phối dữ liệu thành phân phối Gaussian chuẩn với một noise schedule được xác định trước 0<β1<<βN<10 < \beta_1 < \cdots < \beta_N < 1.
  • Reverse process: Từng bước sinh lại mẫu dữ liệu từ noise theo inference noise schedule.

Trong forward process, tại mỗi bước thời gian n[1,,N]n \in [1, \ldots, N], xác suất chuyển tiếp (transition probability) được cho bởi:

q(znzn1)=N(zn;1βnzn1,βnI)q(z_n | z_{n-1}) = \mathcal{N}(z_n; \sqrt{1 - \beta_n} z_{n-1}, \beta_n I)

q(znz0)=N(zn;αˉnz0,(1αˉn)ϵ)q(z_n | z_0) = \mathcal{N}(z_n; \sqrt{\bar{\alpha}_n} z_0, (1 - \bar{\alpha}_n) \epsilon)

với ϵN(0,I)\epsilon \sim \mathcal{N}(0, I) là noise được inject vào, αn\alpha_n là reparameterization của 1βn1 - \beta_nαˉn\bar{\alpha}_n là tích của α\alpha qua các bước. Tại bước cuối cùng NN, zNN(0,I)z_N \sim \mathcal{N}(0, I) có phân phối Gaussian đẳng hướng chuẩn.

Để tối ưu hóa mô hình, nhóm tác giả sử dụng 1 objective như sau:

Ln(θ)=Ez0,ϵ,nϵϵθ(zn,n,Ex)22L_n(\theta) = \mathbb{E}_{z_0, \epsilon, n} \left\| \epsilon - \epsilon_\theta(z_n, n, E^x) \right\|^2_2

với ExE^x là embedding của waveform xx được tạo từ pretrained audio encoder faudio()f_{\text{audio}}(\cdot) trong CLAP.

Trong quá trình reverse, bắt đầu từ phân phối nhiễu Gaussian p(zN)N(0,I)p(z_N) \sim \mathcal{N}(0, I) và text embedding EyE^y, một quá trình khử noise có điều kiện (denoising process conditioned) trên EyE^y dần sinh ra audio z0z_0 theo quá trình sau:

pθ(z0:NEy)=p(zN)n=1Npθ(zn1zn,Ey)p_\theta(z_{0:N} | E^y) = p(z_N) \prod_{n=1}^{N} p_\theta(z_{n-1} | z_n, E^y)

pθ(zn1zn,Ey)=N(zn1;μθ(zn,n,Ey),σn2I)p_\theta(z_{n-1} | z_n, E^y) = \mathcal{N}(z_{n-1}; \mu_\theta(z_n, n, E^y), \sigma_n^2 I)

Trung bình và phương sai được tham số hóa như sau:

μθ(zn,n,Ey)=1αn(znβn1αˉnϵθ(zn,n,Ey))\mu_\theta(z_n, n, E^y) = \frac{1}{\sqrt{\alpha_n}} \left( z_n - \frac{\beta_n}{\sqrt{1 - \bar{\alpha}_n}} \epsilon_\theta(z_n, n, E^y) \right)

σn2=1αˉn11αˉnβn\sigma_n^2 = \frac{1 - \bar{\alpha}_{n-1}}{1 - \bar{\alpha}_n} \beta_n

với ϵθ(zn,n,Ey)\epsilon_\theta(z_n, n, E^y) là nhiễu dự đoán được sinh ra. Trong giai đoạn training, bản chất mô hình sẽ học cách gen ra audio z0z_0 dựa trên không gian biểu diễn cross-modal ExE^x của một mẫu âm thanh. Sau đó, trong quá trình TTA, ta sẽ dùng text embedding EyE^y để dự đoán noise ϵθ(zn,n,Ey)\epsilon_\theta(z_n, n, E^y). Dựa trên embedding CLAP, mô hình LDM sẽ thực hiện việc tạo TTA mà không cần train lại trong giai đoạn gen mẫu.

Conditioning Augmentation

Trong các mô hình gen hình ảnh từ văn bản, diffusion-based models cho thấy khả năng gen được những chi tiết nhỏ, các đường nét tinh vi giữa các đối tượng và nền. 1 trong những lý do mà các mô hình diffusion thực hiện được điều này là nhờ vào các bộ dữ liệu cặp text-image lớn, chẳng hạn như bộ dữ liệu LAION với 400 triệu cặp.

Trong việc tạo tín hiệu âm thanh từ văn bản (TTA generation), mục tiêu là tạo ra các tín hiệu âm thanh tổng hợp có mối quan hệ tương ứng với các mô tả ngôn ngữ tự nhiên. Tuy nhiên, thách thức lớn ở đây là size của các bộ dữ liệu ngôn ngữ-âm thanh không lớn bằng các bộ dữ liệu ngôn ngữ-hình ảnh. Để giải quyết vấn đề này, AudioGen đã áp dụng chiến lược mixup để tăng cường dữ liệu, bằng cách mix các cặp mẫu âm thanh và ghép nối các chú thích văn bản tương ứng để tạo ra dữ liệu cặp mới. Ý tưởng khá dễ hiểu phải không 😄

Trong bài báo, tác giả sử dụng audio embedding ExE^x đóng vai trò là thông tin điều kiện khi huấn luyện các LDMs. Điều này cho phép họ áp dụng augment dữ liệu chỉ trên tín hiệu âm thanh, mà không cần augment các cặp ngôn ngữ-âm thanh. Cụ thể, việc augment mixup trên các mẫu âm thanh x1x_1x2x_2 được thực hiện bằng công thức:

x1,2=λx1+(1λ)x2x_{1,2} = \lambda x_1 + (1 - \lambda) x_2

trong đó, λ\lambda là hệ số tỷ lệ biến thiên trong khoảng [0, 1], được lấy mẫu từ phân phối Beta B(5,5)B(5, 5).

Phương pháp này không cần đến thông tin mô tả văn bản y1,2y_{1,2} khi huấn luyện các LDMs, do đó đơn giản hóa quá trình huấn luyện. Bằng cách mix các cặp âm thanh, số lượng cặp dữ liệu huấn luyện (z0,Ex)(z_0, E^x) cho các LDMs được tăng lên, giúp các LDMs trở nên mạnh mẽ hơn. Trong quá trình lấy mẫu, với text embedding EyE^y từ các unseen text data, các LDMs sẽ tạo ra tín hiệu âm thanh tương ứng từ z0z_0.

Classifier-free Guidance

image.png

Trong diffusion models, việc tạo ra kết quả có kiểm soát (controllable generation) có thể đạt được bằng cách thêm hướng dẫn tại mỗi bước sampling. Có 2 phương pháp hướng dẫn chính được sử dụng là hướng dẫn bằng bộ phân loại (classifier guidance) và hướng dẫn không dùng bộ phân loại (classifier-free guidance - CFG).

Classifier guidance sử dụng một bộ phân loại để cung cấp hướng dẫn cho diffusion models. Bên cạnh đó, phương pháp CFG là 1 cách hiệu quả khác trong việc hướng dẫn diffusion models.

Trong quá trình huấn luyện, embedding điều kiện ExE^x được ngẫu nhiên loại bỏ với một xác suất cố định, ví dụ 10%, để huấn luyện cả diffusion models có điều kiện ϵθ(zn,n,Ex)\epsilon_{\theta}(\mathbf{z}_n, n, E^x) và diffusion models không điều kiện ϵθ(zn,n)\epsilon_{\theta}(\mathbf{z}_n, n). Điều này giúp mô hình học được cách hoạt động trong cả hai trường hợp có và không có điều kiện.

Trong quá trình sampling, embedding văn bản EyE^y được sử dụng làm điều kiện và thực hiện sampling với một ước lượng biến đổi ϵ^θ(zn,n,Ey)\hat{\epsilon}_{\theta}(\mathbf{z}_n, n, E^y). Công thức để tính ước lượng này là:

ϵ^θ(zn,n,Ey)=wϵθ(zn,n,Ey)+(1w)ϵθ(zn,n)\hat{\epsilon}_{\theta}(\mathbf{z}_n, n, E^y) = w \epsilon_{\theta}(\mathbf{z}_n, n, E^y) + (1 - w) \epsilon_{\theta}(\mathbf{z}_n, n)

trong đó, ww xác định quy mô hướng dẫn (guidance scale). Việc này cho phép diffusion models sử dụng thông tin từ cả mô hình có điều kiện và không điều kiện để tạo ra kết quả cuối cùng.

So với AudioGen, có hai điểm khác biệt chính trong phương pháp tiếp cận này. Đầu tiên, AudioGen sử dụng CFG trên một mô hình auto-regressive dựa trên transformer, trong khi các LDMs (Latent Diffusion Models) duy trì công thức lý thuyết của CFG.

Thứ hai, AudioGen loại bỏ các mô tả văn bản thể hiện các mối quan hệ không/thời gian trong bước tiền xử lý văn bản. Ngược lại, trong nghiên cứu này, embedding văn bản EyE^y được trích xuất từ ngôn ngữ tự nhiên chưa qua xử lý, cho phép CFG sử dụng các mô tả chi tiết làm hướng dẫn cho việc sinh mẫu.

Như vậy, phương pháp được mô tả ở đây cho thấy sự khác biệt và ưu điểm của việc sử dụng embedding văn bản chưa qua xử lý trong việc hướng dẫn diffusion models, so với phương pháp của AudioGen. Điều này cho phép mô hình tận dụng được thông tin chi tiết từ ngôn ngữ tự nhiên để tạo ra kết quả chính xác và phù hợp hơn.

Decoder

Trong phần này, chúng ta sử dụng VAE (Variational Autoencoder) để nén mel-spectrogram XRT×F\mathbf{X} \in \mathbb{R}^{T \times F} vào một latent space nhỏ zRC×Tr×Fr\mathbf{z} \in \mathbb{R}^{C \times \frac{T}{r} \times \frac{F}{r}}, trong đó rr là mức độ nén của latent space.

VAE bao gồm một encoder và decoder với stacked convolutional modules. Trong training, ta sẽ sử dụng các loss function như sau:

  • Reconstruction Loss
  • Adversarial Loss
  • Gaussian Constraint Loss

Trong quá trình sampling, decoder được sử dụng để tái cấu trúc mel-spectrogram X^\hat{\mathbf{X}} từ âm thanh gốc z^0\hat{\mathbf{z}}_0 được tạo ra từ LDMs.

Để chọn rr tối ưu, nhóm tác giả thử nghiệm với các giá trị rr thuộc tập hợp {1,2,4,8,16}\{1, 2, 4, 8, 16\} và chọn r=4r = 4 làm thiết lập mặc định do tính hiệu quả tính toán cao và chất lượng sinh mẫu.

Trong quá trình thực hiện conditioning augmentation cho LDMs, nhóm tác giả sử dụng các phương pháp data augmentation với VAE để đảm bảo chất lượng reconstruction của các mẫu tổng hợp. Nhóm tác giả cũng sử dụng HiFi-GAN để gen mẫu âm thanh x^\hat{\mathbf{x}} từ mel-spectrogram X^\hat{\mathbf{X}} đã được reconstruction.

Text-Guided Audio Manipulation

Khi có một mẫu âm thanh gốc xsrcx^{\text{src}}, chúng ta có thể tính toán noisy latent representation zn0z_{n_0} với một thời điểm xác định trước n0Nn_0 \leq N theo forward process. Bằng cách sử dụng zn0z_{n_0} làm điểm khởi đầu của reverse process của mô hình pretrained AudioLDM, chúng ta có thể chỉnh sửa âm thanh xsrcx^{\text{src}} với đầu vào văn bản yy bằng quá trình được gọi là shallow reverse process pθ(z0:n0Ey)p_{\theta}(z_{0:n_0} | E^y):

pθ(z0:n0Ey)=p(zn0)n=1n0pθ(zn1zn,Ey),p_{\theta}(z_{0:n_0} | E^y) = p(z_{n_0}) \prod_{n=1}^{n_0} p_{\theta}(z_{n-1} | z_n, E^y),

trong đó n0n_0 kiển soát kết quả chỉnh sửa. Nếu ta đặt n0Nn_0 \approx N, thông tin được cung cấp bởi âm thanh gốc sẽ không được giữ lại và kết quả sẽ tương tự như TTA generation. Hình dưới minh họa hiệu ứng của n0n_0.

image.png

Audio inpainting và audio super-resolution đều là bài toán gen ra phần thiếu của tín hiệu âm thanh dựa trên phần quan sát được xobx^{\text{ob}}. Nhóm tác giả thực hiện nghiên cứu task này bằng cách tích hợp phần quan sát trong latent space zobz^{\text{ob}} vào generated latent representation zz.

Cụ thể, trong reverse process, bắt đầu từ p(zN)N(0,I)p(z_N) \sim \mathcal{N}(0, I), sau mỗi bước infer, ta sẽ điều chỉnh generated latent representation zn1z_{n-1} với công thức:

zn1=(1m)zn1+mzn1ob,z'_{n-1} = (1 - \mathbf{m}) \odot z_{n-1} + \mathbf{m} \odot z^{\text{ob}}_{n-1},

trong đó zz' là modified latent representation, mRT×Fr\mathbf{m} \in \mathbb{R}^{T \times \frac{F}{r}} kaf observation mask trong latent space, và zn1obz^{\text{ob}}_{n-1} thu được bằng cách thêm noise vào zobz^{\text{ob}} trong forward process.

Giá trị của observation mask m\mathbf{m} phụ thuộc vào phần quan sát được của mel-spectrogram X\mathbf{X}. Vì sử dụng cấu trúc convolutional trong VAE để học latent representation zz nên ta có thể giữ lại xấp xỉ sự tương ứng không gian trong mel-spectrogram.

Do đó, nếu 1 bin time-frequency Xt,fX_{t,f} được quan sát, ta sẽ đặt observation mask mt,f=1\mathbf{m}_{t,f} = 1 trong latent space. Bằng cách sử dụng m\mathbf{m} để biểu thị phần generate và phần quan sát trong zz, ta có thể tạo ra phần thiếu được điều kiện hóa bởi văn bản hướng dẫn với các mô hình TTA, đồng thời giữ lại được ground-truth observation zobz^{\text{ob}}.

Tài liệu tham khảo

[1] AudioLDM: Text-to-Audio Generation with Latent Diffusion Models

[2] https://github.com/haoheliu/AudioLDM


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.