- hertz-dev foi lançado como um modelo base full-duplex de 8,5B parâmetros dedicado a áudio, capaz de lidar até com situações em que duas pessoas falam ao mesmo tempo, servindo como ponto de partida para pesquisa em agentes de voz em tempo real
- A arquitetura é dividida em hertz-codec e hertz-ar: ela converte áudio de 16kHz em uma representação latente de 8Hz e, com base nos valores latentes anteriores, prevê o próximo valor latente de áudio de forma autorregressiva
- A latência média real em uma única RTX 4090 foi medida em 120ms, e a latência média teórica foi apresentada como 80ms, ou seja, 2x menor que o melhor nível anterior
- O hertz-codec gera um valor latente 32-dimensional a cada frame de 125ms, e o hertz-ar usa um transformer decoder-only de 40 camadas e 8,4B parâmetros com contexto de cerca de 4,5 minutos
- Como não é um modelo de produto com distribuição de resposta estreitada por ajuste com aprendizado por reforço, mas sim um modelo base que prevê a distribuição dos dados de treino, ele é fácil de ajustar finamente por pesquisadores para tarefas de áudio conversacional
O problema de áudio conversacional que o Hertz-dev busca resolver
- Para agentes interativos naturais, a modalidade de áudio imediata é mais importante do que texto
- As abordagens de áudio generativo se dividem em dois grandes grupos: métodos baseados em difusão e métodos autorregressivos; modelos de difusão são fortes para geração musical ou amostras curtas, mas para áudio conversacional real o método autorregressivo é mais adequado
- Há duas dificuldades centrais que modelos conversacionais precisam resolver
- Gerar áudio que soe humano e lidar com interrupções de forma natural
- Lidar com situações em que dois canais em tempo real geram informação ao mesmo tempo, como em conversas humanas comuns
Modelo lançado e latência
- hertz-dev é um modelo base full-duplex, dedicado a áudio, com 8,5B parâmetros
- Ele foi projetado para o formato de dois falantes, podendo analisar e gerar áudio sobreposto de dois locutores
- Opera em um espaço latente que usa bits fonéticos quantizados, amostrando apenas um valor latente por timestep
- A latência é apresentada da seguinte forma
- Latência média teórica: 80ms
- Benchmark real em uma única RTX 4090: 120ms
- Valor 2x menor que o melhor nível anterior
Estrutura do modelo: hertz-codec e hertz-ar
- O hertz-dev é dividido em dois componentes
- hertz-codec: codifica o áudio em valores latentes e depois o reconstrói de volta em áudio
- hertz-ar: prevê valores latentes futuros condicionados aos valores latentes passados
- Os valores latentes de áudio são tratados como representações prévias ricas que podem ser usadas em várias tarefas downstream
-
hertz-codec
- O hertz-codec é um VAE de áudio convolucional que recebe voz mono em 16kHz e a codifica em uma representação latente de 8Hz
- Usa bitrate de 1kbps regularizado por KL
- Para inferência em streaming, usa causal convolution, adicionando funcionalmente padding à esquerda da sequência
- O codec produz parâmetros gaussianos de média e variância, e faz amostragem de um único valor latente 32-dimensional a cada frame de 125ms
- Em avaliação subjetiva, o hertz-codec superou Soundstream e Encodec a 6kbps e foi avaliado em nível semelhante ao DAC a 8kbps
- Como tem menos tokens por segundo do que tokenizers populares, é vantajoso para modelagem de linguagem
- Configuração de parâmetros
- Encoder: 5M parâmetros
- Decoder: 95M parâmetros
- Checkpoints públicos
- inference_apatosaurus_95000.pt: pesos do
hertz-codectreinados com reconstrução mista, perda adversarial e perda de regularização KL - inference_volcano_3.pt:
hertz-codec quantizerque destila 15 bits foneticamente importantes de cada valor latente
- inference_apatosaurus_95000.pt: pesos do
-
hertz-ar
- O hertz-ar é um transformer decoder-only de 40 camadas e 8,4B parâmetros
- O contexto de entrada é de 2048 tokens, equivalente a cerca de 4,5 minutos
- Os valores latentes de saída podem ser enviados ao hertz-codec
- As primeiras 32 camadas recebem o histórico latente como entrada e preveem a projeção quantizada de 15 bits do próximo token latente de áudio
- Essa parte de 32 camadas é chamada de
hertz-lme pode ser treinada de forma independente ou inicializada a partir de pesos de modelo de linguagem - As 8 camadas finais usam o histórico latente e os valores latentes quantizados de 15 bits para prever futuros tokens latentes de áudio
- O áudio duplex é tratado como uma tarefa de pós-treinamento
- Dois projection heads são concatenados e depois separados
- O processamento é feito com dois pipelines de projeção quantizada condicionados ao residual de cada um
- Checkpoints públicos
- inference_caraway_112000.pt: pesos do
hertz-lminicializados a partir de um modelo de linguagem treinado com 2T tokens - inference_syrup_110000.pt: pesos do
hertz-lmtotalmente treinados com valores latentes de áudio após inicialização aleatória - inference_whip_72000.pt: pesos do
hertz-arpara as 8 camadas finais - inference_care_50000.pt, inference_scion_54000.pt: checkpoints duplex para
hertz-ar
- inference_caraway_112000.pt: pesos do
Geração de amostras e escolhas de treinamento
- Para mostrar a capacidade de modelagem de áudio do modelo, são fornecidas amostras de geração em canal único, geração em dois canais e conversas ao vivo entre humano e modelo
- As amostras interativas incluem um prompt de 9 segundos
- As principais escolhas de treinamento são as seguintes
- No hertz-codec, foram usadas Causal ConvNets para decodificação paralela e controle mais refinado da geração latente
- Os valores latentes quantizados de 15 bits foram treinados inicialmente para carregar informação fonética, levando o modelo a produzir enunciados sintaticamente corretos
- A quantização é realizada inserindo uma projeção MLP em uma camada Finite Scalar Quantization
- No
hertz-lm, foram feitos experimentos de ablação com duas estratégias de inicialização, e foi apresentado que o modelo aprendeu linguistics de forma eficaz com ou sem inicialização a partir de modelo de texto
Método de inferência em tempo real
- Durante a inferência ao vivo, o modelo executa 8 forward passes por segundo e continua a geração autorregressiva continuamente
- A entrada consiste em dois canais separados, mas na conversa apenas um canal é retornado
- Em cada etapa, o áudio humano é tokenizado em valores latentes e combinado com o último valor latente gerado pelo modelo para entrar no
hertz-ar - A latência é medida como o tempo médio entre a fala do usuário e a resposta do modelo
- Em termos computacionais, a latência média é de 62,5ms, incluindo o tempo médio entre uma fala arbitrária e o fim de um token, o tempo de forward pass e a latência de internet de ida e volta
- Ao rodar localmente em uma RTX 4090, a latência média real costuma ser de 120ms
- Baixa latência é uma condição para criar um modelo que interaja como uma pessoa, sem parecer uma ligação telefônica atrasada e truncada
Caráter público e posição de uso
- O hertz-dev é apresentado como o primeiro modelo base público para áudio conversacional
- Aqui, modelo base significa não um modelo cuja distribuição de geração foi fortemente estreitada por ajuste com aprendizado por reforço, mas um modelo que prevê com precisão a distribuição dos dados de treino
- Por esse caráter, ele é um bom ponto de partida para fine-tuning em várias tarefas downstream
- Recursos relacionados
1 comentários
Comentários no Hacker News
Isso é muito legal. Para referência, os mecanismos de síntese de voz open source existentes são bem fracos em comparação com o que aparece aqui, então acho que haveria muita demanda se isso fosse expandido para um formato multimodal que hoje é voz-para-voz, mas que também pudesse aceitar texto.
Na prática, além de ser um ótimo modelo voz-para-voz, ele também se tornaria um modelo TTS muito bom. Alguém talvez consiga contornar isso fazendo fine-tuning para que saídas como as do Piper sejam reproduzidas com prosódia e entonação mais naturais, mas acho que o recurso de receber texto nativamente seria muito mais útil do que encadear um pipeline texto LLM → Piper → Hertz-dev
Mas talvez não seja algo que essa equipe precise fazer diretamente
Dizem que o Hertz é o primeiro, mas o Moshi, lançado no começo deste ano, também é um modelo de voz bidirecional que funciona de modo parecido e roda até em MacBook: https://github.com/kyutai-labs/moshi
No Hertz, também só vejo 3 notebooks de inferência e código de modelo cheio de
no_grad; não vejo código de treinamento. Também não há artigo, então fica difícil entender como ele foi treinado e qual é a arquitetura. Por isso, a menos que eu esteja deixando passar algo, é meio difícil chamá-lo de amigável à pesquisamoshi https://github.com/kyutai-labs/moshi é um modelo baseado em fala-texto que usa o Mimi, um codec de áudio neural de streaming de última geração, e o Mini-Omni https://github.com/gpt-omni/mini-omni é um LLM multimodal baseado no Qwen2 que oferece entrada e saída de voz. Ichigo https://github.com/homebrewltd/ichigo é um projeto de pesquisa aberto que expande LLMs baseados em texto com capacidade nativa de escuta por meio de técnicas de fusão inicial
A Tesla excluir inicialmente lidar e outros sensores e focar em direção autônoma puramente baseada em visão parece uma estratégia para tornar a tecnologia mais acessível e escalável
Ao focar em modelos apenas de visão, a adoção pode acelerar, e a coleta de dados em larga escala também pode tornar as iterações de melhoria mais rápidas. Quando sistemas baseados em visão estiverem maduros o suficiente, talvez a Tesla possa reintegrar dados de sensores como lidar ou radar para tornar seu portfólio de direção autônoma mais robusto e bem-acabado
Pensei em uma ideia parecida para sistemas de interação por voz. Hoje, a maioria converte fala em texto, gera uma resposta em texto e depois a converte de volta em fala. Mas, se fosse possível treinar para responder diretamente em fala sem passar por texto, talvez as respostas ficassem mais naturais e espontâneas. A fala natural tem sintaxe e ritmo próprios, além de variações de dialeto e tom; então um sistema treinado puramente em fala poderia ser mais humano e interessante
Fico curioso para saber se os modelos atuais de interação por voz seguem o processo padrão fala→texto→fala ou se já estão explorando processamento voz-para-voz
Muito legal. Estou analisando VUI (interface de usuário por voz) agora, então isso pode ser útil
Talvez eu seja um pouco enviesado, já que fiz doutorado pesquisando como VUIs persuadem pessoas, mas acho que VUI é o futuro da interação com computadores. Mesmo que não seja o futuro, pode abrir novos públicos de usuários, como crianças e idosos
Se houver autores de modelos de voz ou pessoas trabalhando em áreas relacionadas, fico curioso se já sentiram que o som emitido pelo sistema soa assustador ou causa algum efeito fisiológico
Dá para pensar nisso como uma espécie de LLM, mas um LLM de áudio, em que o prompt é áudio e a saída gerada também é áudio?
Fico curioso se a ideia de “colapso da distribuição gerativa” já é um tema pesquisado. Se for, gostaria de saber por qual nome ela é conhecida
Achei interessante a ideia de que modelos-base modelam com precisão a distribuição dos dados de treinamento, enquanto modelos que passaram por um grande ajuste via aprendizado por reforço têm a distribuição gerativa dobrada, de modo que o modelo-base é um ponto de partida melhor para fazer fine-tuning em várias tarefas. Isso também parece ter relação com aprendizado contínuo ou com métodos corretos de fine-tuning
Como fazer pré-treinamento do modelo-base hertz-dev em outros idiomas? Fico curioso para saber onde encontrar informações relacionadas
A voz soa um pouco distorcida, e há ruído de fundo com frequência. Isso fica especialmente perceptível quando a fala para e esse ruído desaparece
Fico curioso se isso é uma limitação do modelo ou um problema de qualidade dos dados de treinamento
Algum dos autores poderia explicar o que esta frase do texto realmente quer dizer?
hertz-vae: um decodificador Transformer de 1,8 bilhão de parâmetros que atua como a distribuição a priori aprendida do VAE de áudio. Ele usa 8192 representações latentes amostradas, ou seja, 17 minutos de contexto, e prevê o próximo frame de áudio codificado como uma mistura gaussiana. A informação de quantização de 15 bits do próximo token serve como um suporte semântico que guia a geração de forma compatível com streamingcodecparece comprimir áudio com sample rate de 16k por convolução para 8 amostras por segundo e depois aplicar quantização vetorial em 128 bits para obter o codecEssa quantidade de bits é extremamente insuficiente para representar áudio real e provavelmente serve mais para representar algo como fonemas. O
vaeparece um modelo de difusão baseado em VAE que usa o codec como prompt, e odevparece ser um modelo que prevê o próximo codecO fluxo completo provavelmente é tokenizar o prompt com o
codec; se forem necessários mais s segundos de áudio, prever mais 8 * s tokens com odev; e então converter isso de volta em áudio com o modelo de difusãovae