[Python系列] 文字转语音

什么是TTS

        TTS 是 Text-to-Speech 的缩写,中文称为“文本到语音”。它是一种将书面文本转换为自然听起来的语音的技术。TTS 技术广泛应用于各种场景,如智能助手、语音合成、电子阅读器等。
        TTS 技术通过机械的、电子的方法产生人造语音。它隶属于语音合成,是将计算机生成的或外部输入的文字信息转变为可以听得懂的、流利的汉语口语输出的技术。TTS 技术可以方便地为视力障碍人士阅读文本,为智能设备提供人性化的交互方式等。
        常见的 TTS 技术实现方式有拼接合成、参数合成和端到端合成等。其中,拼接合成是将多个预录制的语音片段拼接成完整的语音;参数合成是通过调整语音参数生成自然音色的语音;端到端合成则是直接将文本转换为语音,无需中间环节。

常用的TTS工具

微软的tts工具,由于非常真实,现在很多营销号都在使用

文本转语音 – 真实 AI 语音生成器 | Microsoft Azure

Google 文字转语音:https://texttospeech.google.com/
Amazon Polly:https://aws.amazon.com/polly/
Adobe Acrobat:https://www.adobe.com/products/acrobat.html
Balabolka:https://www.balabolka.com/
Natural Reader:https://www.naturalreaders.com/

Python实现文字转语音

edge-tts介绍

edge-tts 是一个 Python 库,它基于微软的 Azure Cognitive Services 实现了文本到语音转换(TTS)的功能。这个库提供了一个简单的 API,可以将文本转换为语音,并且支持多种语言和声音。edge-tts 继承了 Azure 的文本转语音功能,但它是免费使用的,这让用户能够方便地在本地进行文本到语音的转换。

安装

使用 edge-tts 需要先安装这个库,可以通过 pip 命令来安装:

pip install edge-tts

安装完成后,可以通过命令行或者 Python 代码来使用 edge-tts。例如,通过命令行,用户可以输入以下命令来将文本转换为语音:

edge-tts --text "你好,世界" --voice zh-CN-XiaoyiNeural --write-media output.mp3

其中 --voice参数是选择具体的语音,我们可以用以下命令查看具体有哪些语音

edge-tts --list-voices
Name: af-ZA-AdriNeural Gender: Female
........
........
........
Name: zh-CN-XiaoxiaoNeural Gender: Female
Name: zh-CN-XiaoyiNeural Gender: Female
Name: zh-CN-YunjianNeural Gender: Male
Name: zh-CN-YunxiNeural Gender: Male
Name: zh-CN-YunxiaNeural Gender: Male
Name: zh-CN-YunyangNeural Gender: Male
Name: zh-CN-liaoning-XiaobeiNeural Gender: Female
Name: zh-CN-shaanxi-XiaoniNeural Gender: Female
Name: zh-HK-HiuGaaiNeural Gender: Female
Name: zh-HK-HiuMaanNeural Gender: Female
Name: zh-HK-WanLungNeural Gender: Male
Name: zh-TW-HsiaoChenNeural Gender: Female
Name: zh-TW-HsiaoYuNeural Gender: Female
Name: zh-TW-YunJheNeural Gender: Male
Name: zu-ZA-ThandoNeural Gender: Female
Name: zu-ZA-ThembaNeural Gender: Male

我们查看output.mp3就可以很清楚地听到一个小女孩的声音,同时在命令行输出了字幕:

WEBVTT

00:00:00.100 --> 00:00:01.550
你好 世界

我们可以把这些字幕输入到视频剪辑文件中,就可以自动添加字幕了。

在python中使用

# coding = utf-8
import asyncio

import edge_tts

sentence = r'这是一个句子'
voice = 'zh-CN-XiaoxiaoNeural'


async def convert_to_mp3(text, rate, volume):
    tts = edge_tts.Communicate(text=text, voice=voice, rate=rate, volume=volume)
    await tts.save('output.mp3')


asyncio.run(convert_to_mp3(sentence, '+10%', '+50%'))

        这段代码会创建一个 EdgeTTS 对象,将文本 “这是一个句子” 转换成语音,并使用中文的语音,最后将输出的音频文件保存为 output.mp3。
        edge-tts 还提供了许多其他的选项,例如可以通过 --rate 和 --volume 选项来调整语速和音量,或者通过 --list-voices 选项来查看可用的语音列表。

总之,edge-tts 是一个方便、免费且功能强大的 Python 库,可以帮助用户实现文本到语音的转换。

相关推荐

  1. [Python系列] 文字语音

    2023-12-08 15:54:02       45 阅读
  2. python文本语音

    2023-12-08 15:54:02       12 阅读
  3. python语音文字-离线

    2023-12-08 15:54:02       43 阅读
  4. 科大讯飞开放平台-python语音文字教程

    2023-12-08 15:54:02       22 阅读
  5. Python 中的离线语音文本

    2023-12-08 15:54:02       13 阅读
  6. 文本语音常用的几个python

    2023-12-08 15:54:02       13 阅读
  7. Python 爬虫 文本语音 支持多种音色模型选择

    2023-12-08 15:54:02       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-08 15:54:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-08 15:54:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-08 15:54:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-08 15:54:02       20 阅读

热门阅读

  1. C#获取字符串变量内存地址

    2023-12-08 15:54:02       30 阅读
  2. python-根据文件名移动已处理的文件

    2023-12-08 15:54:02       35 阅读
  3. 在 10 分钟内在 Remix (React) 中实现单点登录

    2023-12-08 15:54:02       38 阅读
  4. 10-Hadoop组件开发技术

    2023-12-08 15:54:02       27 阅读
  5. qt中sokect断开的几种情况

    2023-12-08 15:54:02       38 阅读
  6. 【PyTorch】前向传播、反向传播和计算图

    2023-12-08 15:54:02       31 阅读
  7. Echarts地图案例及常见问题

    2023-12-08 15:54:02       42 阅读
  8. Fabric 画布缩放、拖动、初始化大小

    2023-12-08 15:54:02       37 阅读
  9. adb push报错:remote couldn‘t create file: Is a directory

    2023-12-08 15:54:02       40 阅读
  10. Go 语言 iota 的神奇力量

    2023-12-08 15:54:02       34 阅读
  11. linux下ls和df卡死

    2023-12-08 15:54:02       41 阅读
  12. GO设计模式——13、享元模式(结构型)

    2023-12-08 15:54:02       39 阅读
  13. Linux卸载MySql(简洁版)

    2023-12-08 15:54:02       29 阅读