如何用 Python 将文本转换成语音

在本教程中,我们将学习如何将人类语言文本转换为类似人类的语音。

有时我们更喜欢听内容而不是阅读。我们可以一边听关键文件数据,一边进行多任务处理。 Python 提供了很多将文本转换为语音的 API。谷歌文本到语音 API 很受欢迎,通常被称为通用技术终端 API。

这个工具非常容易使用,并提供了许多内置功能,用于将文本文件保存为 mp3 文件。

我们不需要使用神经网络和训练模型来将文件转换成语音,因为这也很难实现。相反,我们将使用这些 API 来完成一项任务。

gTTS API提供了将文本文件转换成不同语言的工具,如英语、印地语、德语、泰米尔语、法语等。我们还可以在快速或慢速模式下播放音频语音。

然而,作为它的最新更新,我们不能改变语音文件;它将由系统生成,不可更改。

要将文本文件转换成,我们将使用另一个名为 pyttsx3 的离线库。

安装通用技术规范 API

在终端中键入以下命令来安装 gTTS API。


pip install gTTS

然后,安装附加模块,以便与 gTTS 一起工作。


pip install playsound

然后安装 pyttsx3。


pip install pyttsx3

让我们了解一下 gTTS API 的工作原理


import gtts
from playsound import playsound

我们可以看到,它非常容易使用;我们需要导入它,并将 gTTS 对象作为一个接口传递给 Google Translator API。


# make a request to google to get synthesis
t1 = gtts.gTTS("Welcome to javaTpoint")

在上一行中,我们以文本形式发送了数据,并接收了实际的音频语音。现在,将此保存为音频文件 welcome.mp3 。


# save the audio file
t1.save("welcome.mp3") 

它会将它保存到一个目录中,我们可以如下收听这个文件:


# play the audio file
playsound("welcome.mp3")

输出:

请打开系统音量,听我们之前保存的文本。

现在,我们将文本定义为语音的完整 Python 程序。

Python 程序


# Import the gTTS module for text
# to speech conversion
from gtts import gTTS

# This module is imported so that we can
# play the converted audio

from playsound import playsound

# It is a text value that we want to convert to audio
text_val = 'All the best for your exam.'

# Here are converting in English Language
language = 'en'

# Passing the text and language to the engine,
# here we have assign slow=False. Which denotes
# the module that the transformed audio should
# have a high speed
obj = gTTS(text=text_val, lang=language, slow=False)

#Here we are saving the transformed audio in a mp3 file named
# exam.mp3
obj.save("exam.mp3")

# Play the exam.mp3 file
playsound("exam.mp3")

输出:

说明:

在上面的代码中,我们已经导入了 API 并使用了 gTTS 函数。 gTTS() 函数接受三个参数-

  • 第一个参数是我们想要转换成语音的文本值。
  • 第二个参数是指定的语言。它支持多种语言。我们可以将文本转换成音频文件。
  • 第三个参数代表演讲的速度。我们已经将慢速值设为假;这意味着演讲将以正常速度进行。

我们将这个文件保存为 exam.py ,可以随时访问,然后我们使用了 playsound() 功能在运行时收听音频文件。

可用语言列表

要获得可用的语言,请使用以下函数-

输出:

{'af': 'Afrikaans', 'sq': 'Albanian', 'ar': 'Arabic', 'hy': 'Armenian', 'bn': 'Bengali', 'bs': 'Bosnian', 'ca': 'Catalan', 'hr': 'Croatian', 'cs': 'Czech', 'da': 'Danish', 'nl': 'Dutch', 'en': 'English', 'et': 'Estonian', 'tl': 'Filipino', 'fi': 'Finnish', 'fr': 'French', 'de': 'German', 'el': 'Greek', 'en-us': 'English (US)','gu': 'Gujarati', 'hi': 'Hindi', 'hu': 'Hungarian', 'is': 'Icelandic', 'id': 'Indonesian', 'it': 'Italian', 'ja': 'Japanese', 'en-ca': 'English (Canada)', 'jw': 'Javanese', 'kn': 'Kannada', 'km': 'Khmer', 'ko': 'Korean', 'la': 'Latin', 'lv': 'Latvian', 'mk': 'Macedonian', 'ml': 'Malayalam', 'mr', 'en-in': 'English (India)'}

我们已经提到了几个重要的语言和它们的代码。你可以在这个图书馆里找到几乎所有的语言。

office api

我们已经使用了谷歌 API,但是如果我们想使用离线将文本转换为语音怎么办。Python 提供了 pyttsx3 库,它寻找预装在我们平台中的 TTS 引擎。

让我们了解如何使用 pyttsx3 库:

示例-


import pyttsx3
# initialize Text-to-speech engine
engine = pyttsx3.init()
# convert this text to speech
text = "Python is a great programming language"
engine.say(text)
# play the speech
engine.runAndWait()

在上面的代码中,我们使用了 say() 方法,并将文本作为参数传递。它用于向队列中添加一个单词,而 runAndWait() 方法运行真实的事件循环,直到所有命令排队。

它还提供了一些我们可以根据需要使用的附加属性。我们来了解一下语速的细节:


# get details of speaking rate
rate = engine.getProperty("rate")
print(rate)

输出:

200

We can change rate of speed as we want:
# setting new voice rate (faster)
engine.setProperty("rate", 300)
engine.say(text)
engine.runAndWait()

如果我们通过了 100 分,那么就会慢一些。


engine.setProperty("rate", 100)
engine.say(text)
engine.runAndWait()

现在,我们可以在声音中听到文本文件。


# get details of all voices available
voices = engine.getProperty("voices")
print(voices)

输出:

[<pyttsx3.voice.Voice object at 0x000002D617F00A20>, <pyttsx3.voice.Voice object at 0x000002D617D7F898>, <pyttsx3.voice.Voice object at 0x000002D6182F8D30>]

在本教程中,我们讨论了使用第三方库将文本文件转换为语音。我们还讨论了线下图书馆。通过使用这个,我们可以建立自己的虚拟辅助。


原创文章,作者:MCHVQ,如若转载,请注明出处:https://www.506064.com/n/329322.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
MCHVQMCHVQ
上一篇 2025-01-14 18:55
下一篇 2025-01-14 18:55

相关推荐

  • 如何用Python写爱心

    本文将会从多个方面阐述如何用Python语言来画一个美丽的爱心图案。 一、准备工作 在开始编写程序之前,需要先理解一些编程基础知识。首先是绘图库。Python有很多绘图库,常见的有…

    编程 2025-04-29
  • 如何用Python统计列表中各数据的方差和标准差

    本文将从多个方面阐述如何使用Python统计列表中各数据的方差和标准差, 并给出详细的代码示例。 一、什么是方差和标准差 方差是衡量数据变异程度的统计指标,它是每个数据值和该数据值…

    编程 2025-04-29
  • c# enum转换成string

    本文将从以下几个方面详细阐述c#中enum类型转换成string类型的方法及注意事项。 一、基本语法和示例 c#中的enum类型可以看作是一组有名字的常量值,通常用于定义一组相关的…

    编程 2025-04-29
  • 如何用Python对数据进行离散化操作

    数据离散化是指将连续的数据转化为离散的数据,一般是用于数据挖掘和数据分析中,可以帮助我们更好的理解数据,从而更好地进行决策和分析。Python作为一种高效的编程语言,在数据处理和分…

    编程 2025-04-29
  • 如何用Python打印温度转换速查表

    本文将从多个方面阐述如何用Python打印温度转换速查表,以便于快速进行温度转换计算。 一、Python打印温度转换速查表的基本知识 在计算机编程领域中,温度转换是一个重要的计算。…

    编程 2025-04-29
  • 如何用Python访问网站

    本文将从以下几个方面介绍如何使用Python访问网站:网络请求、POST请求、用户代理、Cookie、代理IP、API请求。 一、网络请求 Python有三种主流的网络请求库:ur…

    编程 2025-04-29
  • 如何用指数函数编写3.5^5.1?

    本文将从以下几个方面详细阐述如何用指数函数编写3.5^5.1。 一、指数函数介绍 指数函数是一种特殊的函数形式,通常采用a^x的形式表示。其中a是指底数,x是指幂次。当幂次是整数时…

    编程 2025-04-28
  • Python文本居中设置

    在Python编程中,有时需要将文本进行居中设置,这个过程需要用到字符串的相关函数。本文将从多个方面对Python文本居中设置作详细阐述,帮助读者在实际编程中运用该功能。 一、字符…

    编程 2025-04-28
  • 文本数据挖掘与Python应用PDF

    本文将介绍如何使用Python进行文本数据挖掘,并将着重介绍如何应用PDF文件进行数据挖掘。 一、Python与文本数据挖掘 Python是一种高级编程语言,具有简单易学、代码可读…

    编程 2025-04-28
  • 如何用简笔画画出小猪佩奇全家福

    要想画出小猪佩奇全家福,我们可以按照以下步骤进行。 一、画出小猪佩奇 首先,我们需要画出小猪佩奇的脸。可以用一个圆形来表示小猪佩奇的头部,然后再在头部上画上两个小耳朵,耳朵的形状和…

    编程 2025-04-28

发表回复

登录后才能评论