分享

如何在Python中将语音转换为文本

 flyk0tcfb46p9f 2020-05-10

语音识别是计算机软件识别口语中的单词和短语并将其转换为人类可读文本的能力。在本教程中,你将知道如何使用SpeechRecognition  库在Python中将语音转换为文本  。

因此,我们不需要从头开始构建任何机器学习模型,该库为我们提供了各种著名的公共语音识别API(例如Google Cloud Speech API,IBM Speech To Text等)的便捷包装。

让我们开始吧,首先使用pip安装库:

pip3 install SpeechRecognition

Okey,打开一个新的Python文件并导入它:

import speech_recognition as sr

从文件读取

确保当前目录中有一个音频文件:

filename = 'speech.wav'

该文件是从  LibriSpeech  数据集中获取的,但是你可以带上你想要的转换的东西,只需要更改一下文件名即可,现在让我们初始化语音识别器:

# initialize the recognizer

r = sr.Recognizer()

以下代码负责加载音频文件,并使用Google Speech Recognition将语音转换为文本:

# open the file

with sr.AudioFile(filename) as source:
   # listen for the data (load audio to memory)
   audio_data = r.record(source)
   # recognize (convert from speech to text)
   text = r.recognize_google(audio_data)
   print(text)

这将需要几秒钟才能完成,因为它将文件上传到Google中获取到输出,这是我获取到的结果:

I believe you're just talking nonsense

从麦克风读取

这需要在你的机器上安装PyAudio,以下是取决于你的操作系统的安装过程:

Windows系统

你可以点安装它:pip3 install pyaudio

Linux系统

需要安装依赖项:

sudo apt-get install python-pyaudio python3-pyaudio

pip3 install pyaudio

苹果系统

需要先安装portaudio,然后才可以安装它:

brew install portaudio

pip3 install pyaudio

现在,让我们使用麦克风转换语音:

with sr.Microphone() as source:
   # read the audio data from the default microphone
   audio_data = r.record(source, duration=5)
   print('Recognizing...')
   # convert speech to text
   text = r.recognize_google(audio_data)
   print(text)

它会从你的麦克风录取到5秒钟,然后尝试将语音转换为文本!

它与先前的代码非常相似,但是我们在这里使用Microphone()对象从默认麦克风读取音频,然后在record()函数中使用duration参数在5秒后停止读取,然后上传音频数据向Google获取输出文本。

你还可以在record()函数中使用offset参数在偏移几秒钟后开始记录。

另外,你也可以通过将language参数传递给accept_google()函数来识别不同的语言。例如,如果你想识别别的语言(如:西班牙语音),则可以使用:

text = r.recognize_google(audio_data, language='es-ES')

使用此库将语音转换为文本非常简单。该库在国外被广泛使用,如果有需要可以去掌握它。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多