多位说话者 2
在一个音频文件中区分多位说话者称为说话人分离(speaker diarization)。不过,您已经看到我们一直在用的免费函数 recognize_google() 并不具备区分不同说话者并分别转写的能力。
一种无需使用付费语音转文本服务的替代方案,是确保您的音频文件为单人说话。
也就是说,如果您处理的是电话通话数据,应该确保主叫与被叫分别录音。然后您可以分别转写每个文件。
在本练习中,我们将分别转写这个多位说话者音频文件中的每一位说话者。
本练习是课程的一部分
Python 语音语言处理
练习说明
- 将
speakers传入enumerate()函数,以遍历不同的说话者。 - 在
recognizer上调用record(),把AudioFile转换为AudioData。 - 使用
recognize_google()转写每个speaker_audio对象。
交互式实操练习
通过完成这段示例代码来试试这个练习。
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"))