Python实现语音转文本:SpeechRecognition库实战指南

星野
星野
发布时间:2026-10-14 | 5人浏览过
原创

本文详细介绍如何利用Python的SpeechRecognition库实现语音到文本的转换。无需构建机器学习模型,该库封装了Google等主流API。内容涵盖库的安装、音频文件读取转换、麦克风实时录音处理,以及针对Windows、Linux和macOS系统的PyAudio依赖配置,并提供多语言识别示例,帮助开发者快速集成语音识别功能。

Python语音识别概述

语音识别技术旨在让计算机软件能够识别口语中的单词和短语,并将其转化为可读的文本形式。在Python环境中实现语音转文本并非难事,借助SpeechRecognition库,开发者无需从零构建复杂的机器学习模型,该库提供了对多种知名公共语音识别API的便捷封装,简化了开发流程。

从音频文件转换语音

首先需要通过pip命令安装该库。


pip3 install SpeechRecognition

安装完成后,创建一个新的Python文件并导入该库。


import speech_recognition as sr

接下来演示如何从本地音频文件中读取语音数据。

请确保当前工作目录下存在一个包含英语语音的音频文件。为了便于跟随操作,你可以下载示例音频文件。


filename = “speech.wav”

该示例文件源自LibriSpeech数据集,当然你也可以使用任何你需要的音频文件,只需修改文件名即可。初始化语音识别器是后续步骤的基础。


# initialize the recognizer

r = sr.Recognizer()

以下代码片段负责加载指定的音频文件,并调用Google Speech Recognition API将语音转换为文本。


# open the filewith sr.AudioFile(filename) as source:www.zpedu.com/

# 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库,因此你的计算机必须预先安装PyAudio。具体的安装步骤因操作系统而异。

对于Windows系统。

你可以直接通过pip安装它。


pip3 install pyaudio

对于Linux系统。

你需要先安装相关的依赖项,然后再通过pip安装PyAudio。


sudo apt-get install python-pyaudio python3-pyaudio

pip3 install pyaudio

对于macOS(苹果系统)。

你需要先安装portaudio库,之后才能通过pip安装PyAudio。


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秒钟,随后尝试将这5秒内的语音转换为文本。

这段代码与处理文件的逻辑非常相似,主要区别在于使用了Microphone()对象从默认麦克风读取音频。通过record()函数中的duration参数,程序会在5秒后停止录音,并将音频数据上传至Google以获取转换后的文本结果。

此外,你还可以在record()函数中使用offset参数,指定在延迟几秒钟后开始录音。

另外,通过向recognize_google()函数传递language参数,你可以识别不同语言的语音。例如,若要识别西班牙语语音,可以使用如下代码配置。


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

总结

总结

至此,关于使用Python进行语音转文本的方法介绍完毕。如需了解更多Python语音转换文本的相关内容,请搜索本站历史文章或继续浏览后续文章,感谢大家的支持!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表