Aprendizagem pessoal com IA
e orientação prática

Llasa 1~8B: um modelo de conversão de texto em fala de código aberto para geração e clonagem de fala de alta qualidade

Introdução geral

O Llasa-3B é um modelo de conversão de texto em fala (TTS) de código aberto desenvolvido pelo Laboratório de Áudio da Universidade de Ciência e Tecnologia de Hong Kong (HKUST Audio). O modelo é baseado na arquitetura Llama 3.2B, que foi cuidadosamente ajustada para oferecer geração de fala de alta qualidade que não só suporta vários idiomas, mas também permite a expressão emocional e a clonagem de fala personalizada. O Llasa-3B atraiu a atenção de muitos pesquisadores e desenvolvedores por sua expressividade e flexibilidade na síntese de fala natural.

Llasa 1~8B: um modelo de conversão de texto em fala de código aberto para geração e clonagem de fala de alta qualidade-1

Experiência: https://huggingface.co/spaces/srinivasbilla/llasa-3b-tts


 

Lista de funções

  • conversão de texto em falaConversão de texto em um som natural e suave.
  • clonagem de falaO que é: Apenas 15 segundos de filmagem de áudio são necessários para clonar uma voz humana específica, incluindo timbre e emoção.
  • Suporte a vários idiomasO sistema suporta os idiomas chinês e inglês, com o objetivo de expandir para outros idiomas.
  • expressão afetivaA capacidade de injetar emoção no discurso gerado aumenta a autenticidade do discurso.
  • Suporte a vários modelosModelos de escala paramétrica 1B e 3B disponíveis, com modelos 8B a serem introduzidos no futuro
  • ponderação abertaTodos os modelos oferecem pesos abertos que os desenvolvedores podem usar diretamente ou ajustar duas vezes, e são compatíveis com as estruturas Transformers e vLLM.

 

Usando a Ajuda

Instalação e preparação do ambiente

Para usar o modelo Llasa-3B, primeiro você precisa preparar o ambiente a seguir:

Ambiente PythonPython 3.9 ou superior é recomendado.
Bibliotecas relacionadasRequer a instalação detochatransformadoresxcodec2etc. biblioteca.

conda create -n xcodec2 python=3.9
conda activate xcodec2
pip install transformers torch xcodec2==0.1.3

Download e carregamento de modelos

Visite Hugging Face emPágina do Llasa-3BVocê pode usar diretamente a função de download de modelos do Hugging Face:

from transformers import AutoTokenizer, AutoModelForCausalLM
importar torch
importar soundfile como sf
llasa_3b = 'HKUST-Audio/Llasa-3B'
tokenizer = AutoTokenizer.from_pretrained(llasa_3b)
model = AutoModelForCausalLM.from_pretrained(llasa_3b)
model.eval()
model.to('cuda') # Se houver uma GPU

Processo de conversão de texto em fala

  1. Texto preparado::
    • Digite o texto que você deseja converter em fala.
  2. Pré-processamento de texto::
    • Use um texto formatado específico para orientar o modelo de geração de fala, por exemplo:
      input_text = "Este é um texto de teste, por favor, converta para fala."
      formatted_text = f"{input_text}"
      
  3. Gerar discurso::
    • Converta o texto em um token que o modelo possa entender:
      chat = [
      {"role": "user", "content": "Convert the text to speech:" + formatted_text},
      {"role": "assistant", "content": ""}
      ]
      input_ids = tokenizer.apply_chat_template(chat, tokenize=True, return_tensors='pt', continue_final_message=True)
      input_ids = input_ids.to('cuda')
      
    • Gerar um token de voz:
      speech_end_id = tokenizer.convert_tokens_to_ids('')
      outputs = model.generate(input_ids, max_length=2048, eos_token_id=speech_end_id, do_sample=True, top_p=1, temperature=0.8)
      
  4. decodificação de voz::
    • Converte o token gerado de volta para áudio:
      from xcodec2.modelling_xcodec2 import XCodec2Model
      model_path = "HKUST-Audio/xcodec2"
      Codec_model = XCodec2Model.from_pretrained(model_path).eval().cuda()
      generated_ids = outputs[0][input_ids.shape[1]:-1]
      speech_tokens = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)
      speech_ids = [int(token[4:-2]) for token in speech_tokens if token.startswith('')]
      speech_tokens_tensor = torch.tensor(speech_ids).cuda().unsqueeze(0).unsqueeze(0)
      gen_wav = Codec_model.decode_code(speech_tokens_tensor)
      sf.write("output.wav", gen_wav[0, 0, :].cpu().numpy(), 16000)
      

clonagem de fala

  • Grave ou prepare cerca de 15 segundos da trilha sonora original::
    • Use um dispositivo de gravação ou forneça um arquivo de áudio existente.
  • processo de clonagem fonética::
    • Codificação das frequências de som originais em um livro de códigos que o modelo pode usar:
      prompt_wav = sf.read("your_source_audio.wav")[0] # deve ter uma taxa de amostragem de 16kHz
      vq_code_prompt = Codec_model.encode_code(torch.from_numpy(prompt_wav).unsqueeze(0).unsqueeze(0).cuda())
      
    • Adicionar dicas de áudio ao processo de geração de texto:
      speech_ids_prefix = [f""foridin vq_code_prompt[0, 0, :].tolist()]
      chat = [
      {"role": "user", "content": "Convert the text to speech:" + formatted_text},
      {"role": "assistant", "content": "" + ''.join(speech_ids_prefix)}
      ]
      # As etapas subsequentes são as mesmas que para a conversão de texto em fala
      

advertência

  • Certifique-se de que o formato de entrada de áudio esteja correto, pois o Llasa-3B suporta apenas áudio de 16kHz.
  • O desempenho do modelo é diretamente afetado pela qualidade do texto e do áudio de entrada, garantindo a qualidade da entrada.
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Llasa 1~8B: um modelo de conversão de texto em fala de código aberto para geração e clonagem de fala de alta qualidade

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil