📜  Python:将语音转换为文本和将文本转换为语音(1)

📅  最后修改于: 2023-12-03 15:19:36.906000             🧑  作者: Mango

Python:将语音转换为文本和将文本转换为语音

在现代人工智能和自然语言处理技术的帮助下,语音和文字之间的互相转换已成为现实。Python作为一种流行的编程语言,为事实上的语音和文本转换提供了许多库和工具。在本文中,我们将介绍如何用Python将语音转换为文本和将文本转换为语音。

将语音转换为文本

将语音转换为文本是一种先进的自然语言处理技术,可以大大提高文本分析的速度。Python中的两个主要库用于将语音转换为文本,分别是SpeechRecognitionpocketsphinx

SpeechRecognition

SpeechRecognition 是一个Python库,可以用于语音识别和语音转换为文本。它支持多种语音识别引擎,如Google、Wit.ai、IBM、Microsoft、CMU Sphinx等。这里我们以Google为例进行介绍。

首先,安装SpeechRecognition库:

pip install SpeechRecognition

接下来,使用speech_recognition模块进行语音识别:

import speech_recognition as sr

r = sr.Recognizer()

with sr.AudioFile('audio_file.wav') as source:
    audio = r.record(source) 

try:
    text = r.recognize_google(audio)
    print('You said:', text)
except sr.UnknownValueError:
    print('Unable to recognize speech')
except sr.RequestError as e:
    print('Unable to request results; {0}'.format(e))

上述代码加载 audio_file.wav 文件,并转换为可识别的音频格式。然后使用recognize_google()函数将音频转换为文本。如果识别不了,则会抛出sr.UnknownValueError错误。

pocketsphinx

pocketsphinx是一种轻量级的语音识别引擎,可以在稳定的硬件条件下实现实时识别。PocketSphinx支持多种语言,并可以以多种格式输入音频文件。安装方式与SpeechRecognition相似:

pip install pocketsphinx

使用方式如下:

from pocketsphinx import LiveSpeech

for phrase in LiveSpeech():
    print(phrase)

上述代码将通过麦克风输入的语音进行识别,并将其作为文本输出到控制台上。

将文本转换为语音

将文本转换为语音是一种文本转化技术,它将文本转换为人工生成的声音表示。Python使用gTTSpyttsx3库将文本转换为语音。

gTTS

gTTS支持将文本转换为MP3文件。要将文本转换为语音,可以使用以下代码:

from gtts import gTTS
import os

tts = gTTS(text='Hello, world!', lang='en')
tts.save("hello.mp3")
os.system("mpg321 hello.mp3")

以上代码使用gTTS正常安装于计算机中,使用os和系统命令播放生成的hello.mp3文件。

pyttsx3

pyttsx3是一个Python库,用于跨平台文本到语音(TTS)转换。它支持多个底层TTS引擎,并可以将Audio输出保存到.wav文件。使用pyttsx3转换文本为语音的代码如下:

import pyttsx3

engine = pyttsx3.init()

engine.say("Hello, world!")
engine.runAndWait()

以上代码使用pyttsx3将文本转换为声音,使用runAndWait()函数进行转换。

结尾

本文介绍了两种将语音转换为文本和将文本转换为语音的Python库。这两个库都非常方便,它们可以作为处理语音数据的基础工具。感谢您的阅读,我们希望这篇文章对您在语音识别的旅程中有所帮助。