Ismail Ben Alla

NatVC

Conversion vocale neuronale en temps réel

Audio · sept. 2025 · Terminé

Transformer la voix d'une personne en celle d'une autre, en direct, sans délai perceptible

Construit avecPyTorchAccelerate (multi-GPU)StreamVCLLVCTensorBoardONNX

NatVC — vue d’ensemble

Présentation

La conversion vocale fait sonner un locuteur comme un autre tout en conservant ce qu'il dit. Le faire en direct est difficile : chaque milliseconde de traitement ajoute un délai que l'auditeur peut entendre. Mon mémoire de master à Centrale Lyon, réalisé pendant mon stage chez SteelSeries, posait la question suivante : un modèle fondé sur StreamVC peut-il convertir n'importe quelle voix en n'importe quelle autre en temps réel, dans le budget de latence d'une application live, sans perdre en naturel ?

J'ai construit un système de conversion vocale en PyTorch et ONNX avec une latence de bout en bout inférieure à 80 ms, je l'ai entraîné sur plusieurs GPU avec Accelerate et une perte mel multi-échelle, et j'ai ajouté un mélange multi-voix en temps réel fondé sur l'architecture LLVC.

Grâce à un fine-tuning ciblé et à un post-traitement de la forme d'onde, le système a amélioré le MOS (mean opinion score, une note de naturel attribuée par des auditeurs) de 0.3 point par rapport à la baseline StreamVC. Il s'agit d'un travail industriel : la description reste à haut niveau et le code est propriétaire.

La question

Un modèle fondé sur StreamVC peut-il effectuer une conversion vocale any-to-any en temps réel, dans le budget de latence d'une application live, sans sacrifier le naturel de la voix ?

Fonctionnalités clés

Comment ça marche

  1. Partir de StreamVC

    Une architecture de conversion vocale en streaming a servi de baseline, choisie parce qu'elle traite l'audio au fil de son arrivée.

  2. Entraîner à grande échelle

    Entraînement distribué multi-GPU avec Accelerate, avec une perte mel multi-échelle pour comparer l'audio généré et l'audio cible à plusieurs résolutions.

  3. Mélanger les voix

    Mélange multi-voix en temps réel fondé sur l'architecture LLVC.

  4. Affiner la qualité

    Un fine-tuning ciblé et un post-traitement de la forme d'onde ont relevé le MOS de 0.3 point par rapport à la baseline StreamVC.

  5. Déployer en temps réel

    Un système PyTorch et ONNX qui maintient la latence de bout en bout sous 80 ms.

Stack technique

Ce que j’ai appris

Limites

Projets liés