Introdução geral
O OpenAvatarChat é um projeto de código aberto desenvolvido pela equipe HumanAIGC-Engineering e hospedado no GitHub. É uma ferramenta modular de diálogo humano digital que permite aos usuários executar todas as funcionalidades em um único PC. O projeto combina vídeo em tempo real, reconhecimento de fala e tecnologia humana digital, com design modular flexível e interação de baixa latência como recursos principais. O componente de áudio usa SenseVoice, qwen-plus e CosyVoice A parte do vídeo se baseia no algoritmo LiteAvatar. O código é totalmente aberto para que os desenvolvedores possam estudá-lo e aprimorá-lo.
Lista de funções
- Diálogo humano digital modular: suporta interação em tempo real com voz e vídeo, os módulos podem ser combinados livremente.
- Transmissão de áudio e vídeo em tempo real: comunicação de áudio e vídeo de baixa latência via gradio-webrtc.
- Reconhecimento e geração de fala: integração do SenseVoice e do CosyVoice para lidar com a entrada e saída de fala.
- Animação humana digital: Gere expressões e movimentos humanos digitais suaves com o LiteAvatar.
- Suporte de código aberto: o código completo é fornecido e os usuários podem modificá-lo ou otimizá-lo de acordo com suas necessidades.
Usando a Ajuda
O OpenAvatarChat é um projeto de código aberto que exige que os usuários façam o download do código e configurem o ambiente por conta própria. Veja a seguir as etapas detalhadas de instalação e uso para ajudá-lo a começar rapidamente.
Processo de instalação
- Verificação dos requisitos do sistema
Antes de começar, verifique se o dispositivo atende às seguintes condições:- Python 3.10 ou posterior.
- GPU habilitada para CUDA com pelo menos 10 GB de memória gráfica (20 GB ou mais para modelos não quantificados).
- O desempenho da CPU é bom (testado a 30FPS com o i9-13980HX).
Você pode verificar a versão do Python com o seguinte comando:
python --version
- Instalação do Git LFS
O projeto usa o Git LFS para gerenciar arquivos grandes, portanto, instale-o primeiro:
sudo apt install git-lfs
git lfs install
- Código de download
Clone o projeto localmente digitando o seguinte comando no terminal:
git clone https://github.com/HumanAIGC-Engineering/OpenAvatarChat.git
cd OpenAvatarChat
- Atualização de submódulos
O projeto depende de vários submódulos, que são atualizados com a execução do seguinte comando:
git submodule update --init --recursive
- Modelos para download
O modelo de linguagem multimodal MiniCPM-o-2.6 precisa ser baixado manualmente. Você pode fazer o download em Cara de abraço talvez Escopo do modelo Obter. Coloque o modelo na seçãomodels/
ou execute um script para baixá-lo automaticamente:
scripts/download_MiniCPM-o_2.6.sh
Se não houver memória de vídeo suficiente, você poderá fazer o download da versão int4 quantised:
scripts/download_MiniCPM-o_2.6-int4.sh
- Instalação de dependências
Execute-o no diretório raiz do projeto:
pip install -r requirements.txt
- Gerar certificado SSL
Se for necessário acesso remoto, gere um certificado autoassinado:
scripts/create_ssl_certs.sh
Os certificados são armazenados por padrão na pasta ssl_certs/
Pasta.
- programa de corrida
Há dois tipos de startup:
- executar diretamente::
python src/demo.py
- Operação em contêineres(É necessário o Nvidia Docker):
build_and_run.sh
Funções principais
- Lançamento do diálogo humano digital
Depois de executar o programa, abra um navegador e acessehttps://localhost:8282
(As portas estão disponíveis noconfigs/sample.yaml
(Modificar). A interface mostrará a pessoa digital, clique em "Start" (Iniciar), o programa chamará a câmera e o microfone e entrará no modo de diálogo. - interação por voz
Ao falar no microfone, o sistema reconhecerá a voz por meio do SenseVoice, o MiniCPM-o gerará a resposta e o CosyVoice a converterá em saída de fala. O digitalizador sincronizará a expressão e o formato da boca. Os testes mostram uma latência de resposta de cerca de 2,2 segundos (com base no i9-13900KF e RTX 4090). - Ajuste da configuração
compiladorconfigs/sample.yaml
Documentação. Exemplo: - Modificar a porta: defina o
service.port
Alterar para outro valor. - Ajuste a taxa de quadros: defina
Tts2Face.fps
Defina como 30.
Salve e reinicie o programa para que a configuração entre em vigor.
fluxo de trabalho
- Inicie o programa e aguarde até que a interface termine de carregar.
- Verifique se a câmera e o microfone estão funcionando corretamente.
- Inicie um diálogo e o sistema processará automaticamente a voz e o vídeo.
- Para parar, pressione Ctrl+C para fechar o terminal ou sair da interface.
Alternativas baseadas na nuvem
Se a configuração local for insuficiente, você poderá substituir o MiniCPM-o por um LLM em nuvem:
- modificações
src/demo.py
Para ativar os processadores ASR, LLM e TTS, observe a seção MiniCPM. - existir
configs/sample.yaml
configurarLLM_Bailian
Preencha o endereço e a chave da API, por exemplo:
LLM_Bailian:
model_name: "qwen-plus"
api_url: "https://dashscope.aliyuncs.com/compatible-mode/v1"
api_key: "yourapikey"
- Reinicie o programa para usá-lo.
advertência
- A memória insuficiente da GPU pode causar o travamento do aplicativo; recomenda-se usar o modelo int4 ou a API da nuvem.
- Uma rede instável afetará a transmissão em tempo real; recomenda-se uma conexão com fio.
- Os caminhos de configuração aceitam caminhos relativos (com base no diretório raiz do projeto) ou caminhos absolutos.
cenário do aplicativo
- Estudos técnicos
Os desenvolvedores podem usá-lo para estudar técnicas de diálogo humano digital e analisar a implementação de projetos modulares. - teste pessoal
Os usuários podem criar serviços locais e experimentar a interação humana digital orientada por voz. - Educação e treinamento
Os alunos podem aprender os princípios de reconhecimento de fala, modelagem de linguagem e animação humana digital por meio de código.
QA
- E se eu não tiver memória de vídeo suficiente?
Faça o download do modelo quantitativo int4 ou use a API LLM baseada em nuvem em vez de um modelo local. - Ele oferece suporte ao diálogo multijogador?
A versão atual é adequada para o diálogo de um jogador; a função de vários jogadores precisa ser desenvolvida por você. - E quanto ao atraso na execução?
Verifique o desempenho da CPU/GPU, reduza a taxa de quadros ou desative o modo rápido.