Introdução geral
O Baichuan-Audio é um projeto de código aberto desenvolvido pela Baichuan Intelligence (baichuan-inc), hospedado no GitHub, com foco na tecnologia de interação de voz de ponta a ponta. O projeto fornece uma estrutura completa de processamento de áudio que pode converter a entrada de voz em tokens de áudio discretos e, em seguida, gerar a saída de texto e áudio correspondente por meio de um grande modelo para obter um diálogo em tempo real de alta qualidade. Suporte para chinês e inglês bilíngue, aplicável à necessidade de compreensão de fala e geração da cena, como assistentes inteligentes, robôs de bate-papo por voz e assim por diante. Além disso, o projeto também abre o código-fonte do modelo básico Baichuan-Audio-Base e o benchmark de avaliação OpenAudio-Bench para fornecer aos desenvolvedores um poderoso suporte de pesquisa e desenvolvimento. O projeto segue a licença Apache 2.0, que é adequada para pesquisa acadêmica e aplicações comerciais sob condições específicas.
Lista de funções
- marcação de fala para áudioO discurso de entrada é convertido em tokens de áudio discretos por meio do Baichuan-Audio Tokenizer, que suporta um design de taxa de quadros de 12,5 Hz para garantir a retenção de informações.
- interação de voz em tempo realCombinado com o Audio LLM, ele oferece suporte a conversas bilíngues em inglês e chinês, gerando respostas de voz e texto de alta qualidade.
- Geração de áudioGeração de espectrogramas e formas de onda Mel de alta fidelidade a partir de marcadores de áudio usando o decodificador de áudio de correspondência de fluxo.
- modelo para código aberto (computação)Baichuan-Audio-Base: É fornecido um modelo básico de ajuste fino sem comando, o Baichuan-Audio-Base, e os desenvolvedores podem personalizar o treinamento de acordo com suas necessidades.
- ReferênciasInclui o OpenAudio-Bench, uma ferramenta de avaliação de geração e compreensão de áudio com 2701 pontos de dados.
- suporte multimodalSuporte a entrada mista de texto e áudio para alternância intermodal contínua.
Usando a Ajuda
Processo de instalação
Para usar o Baichuan-Audio localmente, você precisa configurar o ambiente de desenvolvimento e fazer o download dos arquivos de modelo relevantes. Veja a seguir as etapas detalhadas de instalação:
- Preparação ambiental
- Certifique-se de que o Python 3.12 e o Conda estejam instalados em seu sistema.
- Criar e ativar um ambiente virtual:
conda create -n baichuan_audio python=3.12 conda activate baichuan_audio
- Instale as bibliotecas de dependência necessárias:
pip install torch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 --index-url https://download.pytorch.org/whl/cu124 pip install -r requirements.txt pip install accelerate flash_attn==2.6.3 speechbrain==1.0.0 deepspeed==0.14.4
- Instalação de ferramentas do sistema:
apt install llvm ffmpeg
- Modelos para download
- Clone o código do repositório do GitHub (https://github.com/baichuan-inc/Baichuan-Audio):
git clone https://github.com/baichuan-inc/Baichuan-Audio.git cd Baichuan-Audio
- modificações
web_demo/constants.py
acertou em cheioMODELO_PATH
Esse é o caminho para o modelo local (você precisa baixá-lo manualmente ou usar o Hugging Face para obter os pesos do modelo, por exemplo).baichuan-inc/Baichuan-Audio
).
- Clone o código do repositório do GitHub (https://github.com/baichuan-inc/Baichuan-Audio):
- Executar a demonstração
- Inicie a demonstração de reconhecimento de fala:
cd web_demo python base_asr_demo.py
- Inicie a demonstração de síntese de fala:
python base_tts_demo.py
- Iniciar um diálogo de várias rodadas Demo:
python s2s_gradio_demo_cosy_multiturn.py
- Inicie a demonstração de reconhecimento de fala:
Função Fluxo de operação
1. tokenização de fala para áudio (Baichuan-Audio Tokenizer)
- Descrição funcionalConversão de arquivos de fala de entrada ou entrada de microfone ao vivo em tokens de áudio discretos para processamento subsequente.
- procedimento::
- Prepare um arquivo de áudio (compatível com o formato WAV) ou conecte um dispositivo de microfone.
- em execução
base_asr_demo.py
Depois disso, a interface solicitará o upload do áudio ou a ativação do microfone. - O sistema chama automaticamente Sussurro O Large Encoder extrai recursos e gera tokens de áudio por meio de 8 camadas de RVQ (residual vector quantisation).
- A saída pode ser visualizada no console no formato de uma sequência de marcadores discretos.
- advertênciaVerifique se o áudio está claro e se o ruído de fundo é baixo para melhorar a precisão do reconhecimento.
2. interação de voz em tempo real (Audio LLM)
- Descrição funcionalSuporte para que os usuários tenham um diálogo em tempo real com o modelo em inglês e chinês por meio de voz ou texto.
- procedimento::
- estar em movimento
s2s_gradio_demo_cosy_multiturn.py
Para isso, abra a interface do Gradio. - Clique no botão "Record" para iniciar a entrada de voz (por exemplo, "Please tell me today's weather in Chinese").
- O sistema converte a fala em tags e o Audio LLM gera respostas de texto e fala.
- A resposta é exibida simultaneamente em texto e reproduzida pelos alto-falantes.
- estar em movimento
- Uso em destaque::
- Inserção de conteúdo modal misto, por exemplo, digitar o texto "Hi" (Olá) e depois dizer "Please continue in English" (Continue em inglês) com sua voz.
- O sistema permite a alternância modal por meio de marcadores especiais para manter a coerência do diálogo.
3. geração de áudio (decodificador de áudio com correspondência de fluxo)
- Descrição funcionalGeração de voz de alta qualidade com base em entrada de texto ou áudio.
- procedimento::
- estar em movimento
base_tts_demo.py
, entre na interface de conversão de texto em fala. - Digite algo na caixa de texto (por exemplo, "Hello, it's Friday").
- Ao clicar no botão "Generate" (Gerar), o sistema converte o texto em tokens de áudio e, em seguida, gera o espectrograma Mel por meio do decodificador de correspondência de fluxo.
- Use o vocoder integrado para converter o espectrograma em um arquivo WAV para reprodução automática ou download.
- estar em movimento
- Recursos avançadosSuporte para ajustar a velocidade e o tom da fala; os parâmetros específicos podem ser modificados no código.
4. uso de padrões de referência (OpenAudio-Bench)
- Descrição funcionalAvaliação da compreensão de áudio e dos recursos de geração de modelos.
- procedimento::
- Faça o download do conjunto de dados do OpenAudio-Bench (localizado no repositório do GitHub).
- Execute o script de avaliação localmente (você mesmo precisa escrevê-lo ou consultar a documentação do repositório).
- Insira o áudio ou o texto do teste para obter as pontuações de desempenho do modelo nos 5 conjuntos de subavaliação.
- cenário do aplicativoOs desenvolvedores podem usá-lo para comparar o desempenho de diferentes modelos e otimizar as estratégias de treinamento.
advertência
- Requisitos de hardwareGPUs habilitadas para CUDA (por exemplo, placas NVIDIA) são recomendadas, pois a CPU pode ficar mais lenta.
- dependência da redeÉ necessário ter acesso à Internet para fazer o download dos pesos do modelo para a primeira execução, e o uso off-line subsequente é possível.
- uso comercialÉ necessário estar em conformidade com o protocolo Apache 2.0 e confirmar que o número de usuários ativos diários (DAU) é inferior a 1 milhão.