开始使用免费开始使用

多位说话者 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"))
编辑并运行代码