处理不同类型的音频

Python 语音语言处理

Daniel Bourke

Machine Learning Engineer/YouTube Creator

是什么语言?

# Create a recognizer class
recognizer = sr.Recognizer()

# Pass the Japanese audio to recognize_google text = recognizer.recognize_google(japanese_good_morning, language="en-US")
# Print the text print(text)
Ohio gozaimasu
Python 语音语言处理

是什么语言?

# Create a recognizer class
recognizer = sr.Recognizer()

# Pass the Japanese audio to recognize_google text = recognizer.recognize_google(japanese_good_morning, language="ja")
# Print the text print(text)
おはようございます
Python 语音语言处理

非语音音频

# Import the leopard roar audio file
leopard_roar = sr.AudioFile("leopard_roar.wav")

# Convert the AudioFile to AudioData with leopard_roar as source: leopard_roar_audio = recognizer.record(source)
# Recognize the AudioData recognizer.recognize_google(leopard_roar_audio)
UnknownValueError:
Python 语音语言处理

非语音音频

# Import the leopard roar audio file
leopard_roar = sr.AudioFile("leopard_roar.wav")

# Convert the AudioFile to AudioData with leopard_roar as source: leopard_roar_audio = recognizer.record(source)
# Recognize the AudioData with show_all turned on recognizer.recognize_google(leopard_roar_audio, show_all=True)
[]
Python 语音语言处理

显示所有结果

# Recognizing Japanese audio with show_all=True
text = recognizer.recognize_google(japanese_good_morning, 
                                   language="en-US",
                                   show_all=True)
# Print the text
print(text)
{'alternative': [{'transcript': 'Ohio gozaimasu', 'confidence': 0.89041114},
  {'transcript': 'all hail gozaimasu'},
  {'transcript': 'ohayo gozaimasu'},
  {'transcript': 'olho gozaimasu'},
  {'transcript': 'all Hale gozaimasu'}],
 'final': True}
Python 语音语言处理

多说话人

# Import an audio file with multiple speakers
multiple_speakers = sr.AudioFile("multiple-speakers.wav")

# Convert AudioFile to AudioData with multiple_speakers as source: multiple_speakers_audio = recognizer.record(source)
# Recognize the AudioData recognizer.recognize_google(multiple_speakers_audio)
语音识别库的一个限制是无法区分不同说话人和声音,
会将其作为一段文本返回。
Python 语音语言处理

多说话人

# Import audio files separately
speakers = [sr.AudioFile("s0.wav"), sr.AudioFile("s1.wav"), sr.AudioFile("s2.wav")]

# Transcribe each speaker individually for i, speaker in enumerate(speakers): with speaker as source: speaker_audio = recognizer.record(source) print(f"Text from speaker {i}: {recognizer.recognize_google(speaker_audio)}")
Text from speaker 0: one of the limitations of the speech recognition library
Text from speaker 1: is that it doesn't recognise different speakers and voices
Text from speaker 2: it will just return it all as one block a text
Python 语音语言处理

嘈杂音频

  • 如果您听不清,API 也听不清。
# Import audio file with background nosie
noisy_support_call = sr.AudioFile(noisy_support_call.wav)

with noisy_support_call as source: # Adjust for ambient noise and record recognizer.adjust_for_ambient_noise(source, duration=0.5) noisy_support_call_audio = recognizer.record(source)
# Recognize the audio recognizer.recognize_google(noisy_support_call_audio)
hello ID like to get some help setting up my calories
Python 语音语言处理

Vamos praticar!

Python 语音语言处理

Preparing Video For Download...