Konuşma tanıma ve ses üretimi

Hugging Face ile Multi-Modal Modeller

James Chapman

Curriculum Manager, DataCamp

Konuşma

 

Konuşma dalga formlarının önemli kısımları nelerdir?

  • Perde (Pitch): erkekler için ort. 85–180 Hz, kadınlar için 165–255 Hz
  • Vurgu (Stress): dile, aksana ve duyguya bağlıdır
  • Ritim: bağlam, duygu ve dilden etkilenir

 

Sosyal medya gönderisi

Hugging Face ile Multi-Modal Modeller

Otomatik konuşma tanıma

Ses kodlanır, sonra sese veya metne çözülür.

  • Metin ve ses her ikisi de ardışık
  • Örnekler: yazıya döküm, çeviri, metinden sese
Hugging Face ile Multi-Modal Modeller

Otomatik konuşma tanıma

  • Tiny model: 39M parametre, 150MB model boyutu
  • Eğitim verisi: 680 bin saat (etiketli)
from transformers import WhisperProcessor, WhisperForConditionalGeneration
processor = WhisperProcessor.from_pretrained("openai/whisper-tiny")
model = WhisperForConditionalGeneration.from_pretrained("openai/whisper-tiny")
1 https://github.com/openai/whisper
Hugging Face ile Multi-Modal Modeller

Otomatik konuşma tanıma

from datasets import load_dataset, Audio
dataset = load_dataset("CSTR-Edinburgh/vctk")["train"]
dataset = dataset.cast_column("audio", Audio(sampling_rate=16_000))

sample = dataset[0]["audio"]
input_preprocessed = processor(sample["array"], sampling_rate=sample["sampling_rate"], return_tensors="pt")
predicted_ids = model.generate(input_preprocessed.input_features)
transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True) print(transcription)
['Please cool Stella.']
Hugging Face ile Multi-Modal Modeller

Ses üretimi

Ses üretimi için üç bileşen:

  • Önişleyici: yeniden örnekleme ve özellik çıkarımı
  • Model: özellik dönüşümü
  • Vocoder: ses dalga formları için ayrı üretici model
from transformers import SpeechT5Processor, SpeechT5ForSpeechToSpeech, SpeechT5HifiGan

processor = SpeechT5Processor.from_pretrained("microsoft/speecht5_vc") model = SpeechT5ForSpeechToSpeech.from_pretrained("microsoft/speecht5_vc") vocoder = SpeechT5HifiGan.from_pretrained("microsoft/speecht5_hifigan")
Hugging Face ile Multi-Modal Modeller

Konuşma gömüşleri

Bir konuşma gömüsünün ses üretim hattına nasıl uyduğunu gösteren diyagram

Hugging Face ile Multi-Modal Modeller

Konuşmacı gömüşleri üretme

  • Önceden eğitilmiş kodlayıcı: ses dalga formu dizisi → kodlanmış dizi (genelde 512 boyut)
from speechbrain.inference.speaker import EncoderClassifier
speaker_model = EncoderClassifier.from_hparams(source="speechbrain/spkrec-xvect-voxceleb")
speaker_embeddings = speaker_model.encode_batch(torch.tensor(dataset[0]["audio"]["array"]))

speaker_embeddings = torch.nn.functional.normalize(speaker_embeddings, dim=2).unsqueeze(0)
Hugging Face ile Multi-Modal Modeller

Ses üretimi

inputs = processor(audio=dataset[0]["audio"], 
                   sampling_rate=dataset[0]["audio"]["sampling_rate"], 
                   return_tensors="pt")


speech = model.generate_speech(inputs["input_values"], speaker_embedding, vocoder=vocoder)

Önce ve sonra spektrogram

Hugging Face ile Multi-Modal Modeller

Haydi pratik yapalım!

Hugging Face ile Multi-Modal Modeller

Preparing Video For Download...