5 pontos por GN⁺ 2024-01-02 | 1 comentários | Compartilhar no WhatsApp
  • Mira o problema de Zero-shot TTS, funcionando sem treinamento adicional por locutor, ao clonar o timbre do falante com apenas um áudio curto de referência e fazê-lo falar em vários idiomas
  • O ponto central é uma arquitetura que separa a clonagem de timbre do controle de idioma e estilo: o base speaker TTS cria emoção, sotaque, ritmo, pausas e entonação, enquanto o tone color converter aplica o timbre do falante de referência
  • Permite clonagem zero-shot cross-lingual mesmo sem dados de treinamento multilocutor em larga escala para um novo idioma; no treinamento, são usadas 30 mil frases para o base TTS e 20 mil pessoas/300 mil amostras de áudio para o converter
  • A implementação completa usa uma arquitetura feed-forward, sem componentes autorregressivos ou de difusão; a versão otimizada alcança desempenho 12× em tempo real em uma única GPU A10G e leva 85 ms para gerar 1 segundo de fala
  • O código-fonte e os pesos do modelo foram publicados; o OpenVoice foi disponibilizado a mais de 2 milhões de pessoas no mundo como motor de voz da MyShell.ai, e a versão interna foi usada dezenas de milhões de vezes entre maio e outubro de 2023

O problema de clonagem instantânea de voz que o OpenVoice mira

  • A clonagem instantânea de voz (IVC) é um TTS que clona a voz de um falante específico usando apenas um áudio curto de referência, e também é chamada de Zero-shot TTS por funcionar sem treinamento adicional por locutor
  • As aplicações vão de produção de conteúdo de mídia e chatbots personalizados até interações multimodais entre humanos e computadores ou grandes modelos de linguagem
  • Abordagens existentes têm limitações em velocidade, controlabilidade e escalabilidade linguística
    • Métodos autorregressivos como VALLE e XTTS clonam o timbre condicionando-se aos acoustic tokens ou ao speaker embedding da voz de referência, mas é difícil manipular de forma flexível estilos como emoção, sotaque, ritmo, pausas e entonação
    • Métodos não autorregressivos como YourTTS e Voicebox têm inferência rápida, mas não conseguem controlar de forma flexível parâmetros de estilo além do timbre
    • A clonagem de voz cross-lingual existente normalmente exige um dataset MSML com muitos falantes em cada idioma, o que dificulta adicionar novos idiomas
  • O OpenVoice trata três objetivos ao mesmo tempo
    • Clonar o timbre do falante de referência enquanto controla separadamente emoção, sotaque, ritmo, pausas e entonação
    • Executar clonagem cross-lingual mesmo quando o idioma do falante de referência ou o idioma gerado não está nos dados de treinamento MSML
    • Oferecer inferência rápida em tempo real em ambientes comerciais de grande escala sem perda de qualidade

Arquitetura que separa timbre e estilo

  • A ideia central do OpenVoice é não fazer um único modelo grande aprender timbre, idioma e estilo ao mesmo tempo, mas dividir o problema em subtarefas mais fáceis
  • O base speaker TTS model fica responsável por idioma e estilo
    • Pode ser usado um modelo TTS de falante único ou multilocutor
    • O VITS pode ser modificado para inserir embeddings de estilo e idioma no text encoder e no duration predictor
    • O InstructTTS pode receber prompts de estilo
    • Também podem ser usados modelos comerciais que especificam emoção, pausas e modo de articulação via SSML, como o Microsoft TTS
    • Uma pessoa também pode ler diretamente o texto no estilo e idioma desejados para criar a base voice
    • Na implementação pública, o VITS é usado por padrão
  • O tone color converter transforma a fala do base speaker no timbre do falante de referência
    • O encoder é uma rede neural convolucional 1D que recebe como entrada o espectro com transformada de Fourier de curto prazo da fala do base speaker
    • O tone color extractor é uma rede neural convolucional 2D que extrai, a partir do mel-spectrogram, um único vetor contendo informações de timbre
    • O normalizing flow remove as informações de timbre da voz base e cria uma representação que preserva idioma e estilo
    • Essa representação é alinhada, no eixo temporal, com features baseadas em IPA
    • O inverse flow recebe como condição o vetor de timbre do falante de referência e aplica o novo timbre ao feature map
    • O HiFi-GAN gera a raw waveform final
  • O modelo completo da implementação pública opera de forma feed-forward, sem componentes autorregressivos
  • Métodos baseados em extração de units com HuBERT têm o problema de remover não só informações de timbre, mas também emoção e sotaque
  • Outras abordagens que constroem um gargalo de informação para preservar apenas o conteúdo da fala não conseguem remover completamente o timbre
  • A novidade do OpenVoice está mais no framework que separa controle de estilo e idioma da clonagem de timbre do que na invenção de submódulos individuais

Dados de treinamento e objetivos de aprendizado

  • No treinamento do base speaker TTS, são usados dados de 4 falantes
    • 1 falante de inglês americano, 1 falante de inglês britânico, 1 falante de chinês e 1 falante de japonês
    • 30 mil frases no total, com duração média de 7 segundos por frase
    • Os dados em inglês e chinês têm rótulos de classificação de emoção
  • O VITS modificado recebe emotion categorical embedding, language categorical embedding e speaker id como entradas no text encoder, no duration predictor e na flow layer
  • O base model treinado pode alterar sotaque e idioma ao trocar o base speaker, e consegue ler o texto de entrada com diferentes emoções
  • Em experimentos com dados de treinamento adicionais, ritmo, pausas e entonação também podem ser aprendidos da mesma forma que emoção
  • No treinamento do tone color converter, são usadas 300 mil amostras de áudio de 20 mil pessoas
    • Cerca de 180 mil amostras em inglês
    • Cerca de 60 mil amostras em chinês
    • Cerca de 60 mil amostras em japonês
    • Esse dataset é chamado de dataset MSML
  • O objetivo de treinamento do converter tem duas partes
    • Usar mel-spectrogram loss e HiFi-GAN loss para que o encoder-decoder produza som natural
    • Treinar a flow layer para remover o máximo possível de informações de timbre das features de áudio
  • O treinamento para remoção de timbre converte o texto em uma sequência de fonemas IPA, cria text content features com learnable embedding e transformer encoder, alinha-as às features de áudio via dynamic time warping e minimiza a KL-divergence
  • A flow layer é projetada para não receber informações de estilo ou idioma como condição, de modo que não remova informações além do timbre
  • Como a flow layer tem uma estrutura invertible, executar o inverse process condicionado a novas informações de timbre permite reinserir o timbre do falante de referência no mesmo conteúdo e estilo

Resultados experimentais e limitações observadas

  • Em avaliações de clonagem de voz, é difícil fazer comparações numéricas objetivas porque conjunto de treinamento, conjunto de teste e condições de avaliação por Mean Opinion Score variam de um estudo para outro
  • A avaliação do OpenVoice foca mais em uma análise qualitativa própria de desempenho e na disponibilização de amostras públicas de áudio do que em comparações numéricas com métodos existentes
  • O conjunto de teste de clonagem de timbre inclui falantes de referência como celebridades, personagens de jogos e indivíduos anônimos
    • Inclui tanto vozes distintivas e muito expressivas quanto amostras neutras dentro da distribuição de vozes humanas
    • Em combinações de 4 base speakers com vários falantes de referência, clona o timbre de referência e gera fala em diversos idiomas e sotaques
  • A avaliação de controle de estilo cria um corpus de 1 mil amostras em vários estilos usando o base speaker model e SSML do Microsoft TTS, depois as converte para o timbre de referência
    • Emoção, sotaque, ritmo, pausas e entonação são bem preservados
    • Em casos raros, a emoção fica ligeiramente neutralizada
    • O problema é atenuado quando o tone color embedding vector de uma frase específica é substituído pelo vetor médio obtido a partir de várias frases com emoções diferentes do mesmo base speaker
  • A clonagem cross-lingual funciona em modo near zero-shot para idiomas que não estão no dataset MSML
    • Mesmo que o idioma do falante de referência não esteja no dataset MSML, é possível clonar o timbre desse falante
    • Mesmo que o idioma a ser gerado não esteja no dataset MSML, se o base speaker TTS der suporte a esse idioma, ele pode ser falado com o timbre de referência
    • Porém, é necessário haver um base speaker para esse idioma
  • Em experimentos de velocidade, o OpenVoice otimizado, incluindo o base speaker model e o tone converter, alcança desempenho 12× em tempo real em uma única GPU A10G
    • Leva 85 ms para gerar 1 segundo de fala
    • Pela análise de uso de GPU, o limite superior é estimado em cerca de 40× em tempo real, mas essa melhoria fica para trabalhos futuros
  • O uso de IPA é importante para a conversão de timbre cross-lingual
    • O IPA é um dicionário fonêmico unificado entre idiomas, permitindo que a flow layer crie uma representação neutra em relação ao idioma
    • Em experimentos com outros dicionários fonêmicos, houve tendência de pronunciar incorretamente alguns fonemas de idiomas não vistos no treinamento
    • Mesmo que o áudio de entrada seja correto, aumenta a chance de o áudio de saída ter problemas ou soar como falado por uma pessoa não nativa

Materiais publicados e estado de uso

  • O OpenVoice publicou o código-fonte e os modelos treinados para reprodução da pesquisa e trabalhos subsequentes
  • Os resultados qualitativos podem ser vistos na OpenVoice demo
  • As demos detalhadas são divididas nas seguintes categorias
  • Antes da publicação, a versão interna foi usada dezenas de milhões de vezes por usuários no mundo entre maio e outubro de 2023
  • A MyShell.ai usou o OpenVoice como backend de clonagem instantânea de voz e viu o número de usuários na plataforma crescer centenas de vezes
  • Atualmente, o OpenVoice é oferecido a mais de 2 milhões de pessoas no mundo como motor de voz da MyShell.ai

1 comentários

 
GN⁺ 2024-01-02
Opiniões no Hacker News
  • É bom que os autores tenham tornado fácil testar na hora, mas não funcionou muito bem para uso geral de clonagem de voz
    Fiz a leitura do primeiro parágrafo da Wikipedia sobre um livro e gerei a frase seguinte; aos meus ouvidos, soa claramente como algo feito por computador
    Amostra de áudio: https://storage.googleapis.com/dalle-party/sample.mp3
    Voz clonada (conversão para mp3): https://storage.googleapis.com/dalle-party/output_en_default...
    Eu só instalei o pacote com pip, coloquei a amostra de áudio e executei demo_part1.ipynb; terminou quase instantaneamente em um notebook com 3070 Ti / 8GB

    • O README também diz que é uma implementação open source que se aproxima do desempenho da tecnologia interna de clonagem de voz, e que a versão online da myshell.ai é melhor em qualidade de áudio, similaridade da clonagem, naturalidade da fala e eficiência computacional
    • Obrigado pelo exemplo real; para os meus ouvidos também soou bastante gerado
      Fico curioso para saber o quanto melhoraria se fossem fornecidos mais dados de voz originais
    • Pelo site e pelos exemplos, parece estar configurado de forma bem clara para criar vozes de anime estilizadas
    • Pela minha experiência com outras ferramentas, como xtts, para obter os melhores resultados você realmente precisa de amostras de voz em qualidade de estúdio
  • Fico me perguntando se daria para usar isto, ou o Eleven Labs, para criar um modelo de voz para encaixar no TTS de um celular Android
    Tenho um amigo com paralisia da laringe que costuma se comunicar digitando no celular ou em um laptop pequeno
    Se fosse possível pegar a voz dele de gravações antigas e devolver a ele, ainda que um pouco, a “própria” voz, acho que ele ficaria muito feliz

    • Você pode dar uma olhada em soluções como Acapela [0], SpeakUnique [1] e VOCALiD [2]
      Mas não tenho certeza se há uma solução para Android
      Vi recentemente um vídeo de voz personalizada que o Google fez para pacientes com ELA, mas não consegui encontrá-lo online
      No Android, a geração de voz personalizada ainda não está disponível, mas o iOS 17 mais recente oferece suporte a geração de voz personalizada
      O ModelTalker [3] parece ser um projeto de pesquisa de longo prazo sobre geração de voz personalizada para pessoas com distúrbios de fala, e o TTS aparentemente oferece suporte a Android, então pode ser outra opção
      [0] https://www.acapela-group.com/
      [1] https://www.speakunique.co.uk/
      [2] https://vocalid.ai/
      [3] https://www.modeltalker.org/
    • Infelizmente, por enquanto não dá
      Contribuí com TTS no Google e também trabalhei no lado do Android; no iOS, esse recurso vem integrado
      Não existe gerente de produto do Google mais convincente do que “algo que a Apple acabou de lançar”, então talvez isso seja até um sinal de esperança
      Estou trabalhando agora em inferência on-device multiplataforma; você pode consultar o FONNX no GitHub, e isso é uma das 100 coisas que vão ficar na minha cabeça por um tempo, então, quando eu tiver tempo, vou tentar entrar em contato
      Edição: um app Android com um teclado e um botão de “falar”, que chame a API da Eleven Labs, seria suficiente para valer a pena tentar?
  • GitHub: https://github.com/myshell-ai/OpenVoice
    Checkpoint: hxxps://myshell-public-repo-hosting.s3.amazonaws.com/checkpoints_1226.zip
    Tenho certa resistência a links que apontam diretamente para um arquivo zip hospedado na Amazon, então desativei o link do checkpoint
    Também não examinei o que há dentro do arquivo

  • Gostei deste artigo
    Ele soa como “foi assim que fizemos e queremos ajudar outras pessoas a fazer também”
    Em especial, a seção “Remark on Novelty” é ótima: ela diz que o OpenVoice não está tentando inventar submódulos da arquitetura do modelo, mas que a contribuição é o framework que separa o controle de estilo de voz e idioma da clonagem de timbre
    Não tenta exagerar a própria contribuição

  • Exemplos: https://research.myshell.ai/open-voice
    Parece bastante impressionante

  • A licença é a Creative Commons Attribution-NonCommercial 4.0 International License, então proíbe uso comercial, e diz que a MyShell consegue detectar se um áudio foi gerado pelo OpenVoice, com ou sem marca d'água
    Então isso não é “open”, e também não dá para ganhar dinheiro com isso, certo?

    • É open, só é diferente da sua definição
      Dá para ver o código, usar e modificar o quanto quiser, então considero bastante aberto
    • Não dá para ganhar dinheiro
      Claro, golpistas que não se importam com licenças não comerciais provavelmente conseguem
  • Não é muito divulgado, e nem sei se a Apple continua desenvolvendo isso, mas o iOS tem um recurso de clonagem de voz chamado Personal Voice
    Leva cerca de 15 minutos para treinar com a própria voz, e algumas horas para processar on-device enquanto o aparelho está bloqueado
    Dá para usar em chamadas telefônicas e no FaceTime, e não sei se também é possível em outros lugares
    Seria bom se desse para usar também em TTS comum

    • Este é um recurso de acessibilidade para pessoas que estão perdendo a voz ou correm o risco de perdê-la
      Pela forma como dizem que pode ser usado em chamadas telefônicas ou no FaceTime, parece conversão de voz para voz, mas na prática é só para TTS
      Como não é conversão de voz para voz, ele não preserva sinais que fazem a voz soar como a voz real, como características de gagueira ou prosódia
  • Alguns dias atrás liguei para um dos grandes bancos de varejo do Reino Unido, e eles ainda estavam me incentivando a entrar no programa idiota “minha voz é minha senha
    Com a IA chegando a este ponto, isso parece simplesmente descuido

    • A Fidelity Investments fez algo pior há cerca de uma semana
      Mandaram eu responder a algumas perguntas e depois informaram que eu tinha acabado de ser cadastrado no programa de identificação por voz
      Agora cancelar isso virou mais um item na minha lista de tarefas
      Dá vontade de pensar se todas as empresas promovem as pessoas mais burras para cargos de gestão
    • Investec, talvez? Acho que também preciso ligar para desativar isso
  • A primeira coisa que me veio à cabeça, e ainda penso assim, é que os usos antiéticos e criminosos da clonagem de voz provavelmente serão muito mais numerosos que os usos legítimos

    • A primeira coisa que me vem à mente é anonimato
      Dá para criar vídeos no YouTube sem usar a voz real, mantendo ainda entonações e ênfases pessoais que vozes de IA TTS não conseguem reproduzir
      Ou isso também pode ser usado no desenvolvimento de jogos indie
      Aprendendo atuação básica de voz para reduzir a estranheza, você poderia interpretar todos os personagens por conta própria com várias vozes
    • Fico curioso para saber quais casos de uso legítimos foram considerados, e em que profundidade
    • E se o uso comercial acabar sendo maior que o uso ilegal?
      O YouTube vai permitir que as pessoas ouçam idiomas localizados na voz do criador original
    • Discordo
      Nós simplesmente não deveríamos aceitar voz como meio de autenticação
      Acho que o uso mais comum será criar arte e conteúdo de forma programática, sem dubladores
      Quando pipelines de vídeo ou modelos 3D e conversão quadro a quadro forem aperfeiçoados a ponto de parecerem realistas, há uma boa chance de atores também se tornarem quase desnecessários
    • Basta conversar previamente com as pessoas queridas e definir uma palavra-código para situações como estar preso em uma emergência e precisar que enviem dinheiro
      Alguns bancos usam autenticação por voz quando você liga, e só dá para sair dela se pedir explicitamente