Più interlocutori 2
Distinguere più interlocutori in un unico file audio si chiama diarizzazione degli interlocutori (speaker diarization). Tuttavia, hai visto che la funzione gratuita che stiamo usando, recognize_google(), non è in grado di trascrivere interlocutori diversi.
Un modo per aggirare il problema, senza usare uno dei servizi a pagamento di speech-to-text, è assicurarsi che i file audio abbiano un solo interlocutore.
Questo significa che, se stessi lavorando con dati di telefonate, dovresti fare in modo che chiamante e ricevente siano registrati separatamente. In questo modo potresti trascrivere ogni file individualmente.
In questo esercizio, trascriveremo separatamente ciascuno degli interlocutori presenti nel nostro file audio con più interlocutori.
Questo esercizio fa parte del corso
Elaborazione del linguaggio parlato in Python
Istruzioni dell'esercizio
- Passa
speakersalla funzioneenumerate()per iterare tra i diversi interlocutori. - Chiama
record()surecognizerper convertire gliAudioFileinAudioData. - Usa
recognize_google()per trascrivere ognuno degli oggettispeaker_audio.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
recognizer = sr.Recognizer()
# Multiple speakers on different files
speakers = [sr.AudioFile("speaker_0.wav"),
sr.AudioFile("speaker_1.wav"),
sr.AudioFile("speaker_2.wav")]
# Transcribe each speaker individually
for i, speaker in enumerate(____):
with speaker as source:
speaker_audio = recognizer.____(source)
print(f"Text from speaker {i}:")
print(recognizer.____(____,
language="en-US"))