广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python实现语音合成功能详解
  • 555
分享到

Python实现语音合成功能详解

2024-04-02 19:04:59 555人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录导语1.直接使用2. 获取权限2.1 环境准备:2.2 获取权限3. 代码实现3.1 获取access_token3.2 获取转换后音频3.3 配置接口参数3.4 完整demo3

导语

今天就给大家带来个语言识别跟语言赚文字的小工具感兴趣的铁汁萌可以往下滑了

1.直接使用

在1.2官网注册后拿到apiSecret和APIKey,直接复制文章2.4demo代码,保存为online_tts.py,在命令行执行

python online_tts.py -client_secret=你的client_secret -client_id=你的client_id -file_save_path=test.wav --text=今天天气不错

2. 获取权限

Python调用标贝科技语音合成接口,实现文字转语音

2.1 环境准备:

Python 3

2.2 获取权限

标贝科技 https://ai.data-baker.com/#/?source=qwer12

2.2.1 登录

点击产品地址进行登录,支持短信、密码、微信三种方式登录。

2.2.2 创建新应用

登录后进入【首页概览】,各位开发者可以进行创建多个应用。包括一句话识别、长语音识别、录音文件识别;在线合成、离线合成、长文本合成。

2.2.3 选择服务

进入【已创建的应用】,左侧选择您需调用的AI技术服务,右侧展示对应服务页面概览(您可查询用量、管理套餐、购买服务量、自主获取授权、预警管理)。

2.2.4 获取Key&Secret

通过服务 / 授权管理,获取对应参数,进行开发配置(获取访问令牌可进群咨询)

拿到Key和Secret就可以正式使用啦!

3. 代码实现

3.1 获取access_token

在拿到Key和Secret后,我们还需要调用授权接口获取access_token,这个access_token有效时长是24小时。

# 获取access_token用于鉴权
def get_access_token(client_secret, client_id):
    grant_type = "client_credentials"
    url = "Https://openapi.data-baker.com/oauth/2.0/token?grant_type={}&client_secret={}&client_id={}".fORMat(grant_type, client_secret, client_id)
    response = requests.post(url)
    access_token = JSON.loads(response.text).get('access_token')
 
    return access_token

3.2 获取转换后音频

拿到access_token后,调用语音合成接口,就可以获得生成的音频

# 获取转换后音频
def get_audio(data):
    url = "https://openapi.data-baker.com/tts?access_token={}&domain={}&language={}&voice_name={}&text={}&audiotype={}".format(data['access_domain'], data['domain'], data['language'], data['voice_name'], data['text'], data['audiotype'])
    response = requests.post(url)
    content_type = response.headers['Content-Type']
    if 'audio' not in content_type:
        raise Exception(response.text)
    return response.content

3.3 配置接口参数

client_secret和client_id:在文章1.2的官网获取,必填

file_save_path:文件保存路径,必填

text:需要转换的文本内容

audiotype:音频类型,默认16K采样率wav格式

domain:所属领域,默认1

language:合成后文本语言,默认中文“zh"

voice_name:发音人选择,默认“Lingling",

其他发音人详见

https://www.data-baker.com/#/specs/file/tts_voice_list

# 获取命令行输入参数
def get_args():
    text = '欢迎使用标贝开发平台。'
    parser = argparse.ArgumentParser(description='ASR')
    parser.add_argument('-client_secret', type=str, required=True)
    parser.add_argument('-client_id', type=str, required=True)
    parser.add_argument('-file_save_path', type=str, required=True)
    parser.add_argument('--text', type=str, default=text)
    parser.add_argument('--audiotype', type=str, default='6')
    parser.add_argument('--domain', type=str, default='1')
    parser.add_argument('--language', type=str, default='zh')
    parser.add_argument('--voice_name', type=str, default='Lingling')
    args = parser.parse_args()
 
    return args

3.4 完整demo

#!/usr/bin/env python
# coding: utf-8
import requests
import json
import argparse
 
 
# 获取access_token用于鉴权
def get_access_token(client_secret, client_id):
    grant_type = "client_credentials"
    url = "https://openapi.data-baker.com/oauth/2.0/token?grant_type={}&client_secret={}&client_id={}".format(grant_type, client_secret, client_id)
    response = requests.post(url)
    access_token = json.loads(response.text).get('access_token')
 
    return access_token
 
 
# 获取转换后音频
def get_audio(data):
    url = "https://openapi.data-baker.com/tts?access_token={}&domain={}&language={}&voice_name={}&text={}&audiotype={}".format(data['access_domain'], data['domain'], data['language'], data['voice_name'], data['text'], data['audiotype'])
    response = requests.post(url)
    content_type = response.headers['Content-Type']
    if 'audio' not in content_type:
        raise Exception(response.text)
    return response.content
 
# 获取命令行输入参数
def get_args():
    text = '欢迎使用标贝开发平台。'
    parser = argparse.ArgumentParser(description='ASR')
    parser.add_argument('-client_secret', type=str, required=True)
    parser.add_argument('-client_id', type=str, required=True)
    parser.add_argument('-file_save_path', type=str, required=True)
    parser.add_argument('--text', type=str, default=text)
    parser.add_argument('--audiotype', type=str, default='6')
    parser.add_argument('--domain', type=str, default='1')
    parser.add_argument('--language', type=str, default='zh')
    parser.add_argument('--voice_name', type=str, default='Lingling')
    args = parser.parse_args()
 
    return args
 
 
if __name__ == '__main__':
    try:
        args = get_args()
 
        # 获取access_token
        client_secret = args.client_secret
        client_id = args.client_id
        access_token = get_access_token(client_secret, client_id)
 
        # 读取参数
        audiotype = args.audiotype
        domain = args.domain
        language = args.language
        voice_name = args.voice_name
        text = args.text
        data = {'access_domain': access_token, 'audiotype': audiotype, 'domain': domain, 'language': language,
                'voice_name': voice_name, 'text': text}
        content = get_audio(data)
 
        #保存音频文件
        with open('test.wav', 'wb') as audio:
            audio.write(content)
        print("task finished successfully")
    except Exception as e:
        print(e)

3.5 执行

复制所有代码,保存为online_tts.py,在命令行执行

python online_tts.py -client_secret=你的client_secret -client_id=你的client_id -file_save_path=test.wav --text=今天天气不错

以上就是Python实现语音合成功能详解的详细内容,更多关于Python语音合成的资料请关注编程网其它相关文章!

--结束END--

本文标题: Python实现语音合成功能详解

本文链接: https://www.lsjlt.com/news/163789.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python实现语音合成功能详解
    目录导语1.直接使用2. 获取权限2.1 环境准备:2.2 获取权限3. 代码实现3.1 获取access_token3.2 获取转换后音频3.3 配置接口参数3.4 完整demo3...
    99+
    2022-11-13
  • Python人工智能语音合成实现案例详解
    目录正文一、 注册百度AI平台应用二、 编写Python代码正文 今天给大家介绍一下基于百度的AI语音技术SDK实现语音合成的案例,编程语言采用Python,希望对大家能有所帮助...
    99+
    2023-03-21
    Python人工智能语音合成 Python人工智能
  • Python人工智能语音合成功能怎么实现
    今天小编给大家分享一下Python人工智能语音合成功能怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、 注册百度A...
    99+
    2023-07-05
  • 详解Unity 实现语音识别功能
    现在语音识别已经被广泛的应用到各个领域中,在Unity开发中,语音识别也非常受欢迎。大部分人都会选择科大讯飞的语音识别功能,但是在一些小的项目中,使用科大讯飞的就有点大材小用了。今天...
    99+
    2022-11-12
  • 怎么 在HTML5中实现一个语音合成功能
    怎么 在HTML5中实现一个语音合成功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 Speech Synthesis API通过上面的例子我们可以猜测到上面调用的...
    99+
    2023-06-09
  • 详解Androidstudio实现语音转文字功能
    目录一、在科大讯飞的官网上注册并下载SDK二、配置安卓项目三、运行效果展示一、在科大讯飞的官网上注册并下载SDK 1.首先去讯飞开放平台申请一个账号(https://www.xfyu...
    99+
    2022-11-13
  • vue实现文字转语音功能详解
    目前h5新增一个文字转语音的功能(但是正在完善中,勉强能用),h5新增的SpeechSynthesisUtterance实例 首先new一个SpeechSynthesisUttera...
    99+
    2022-11-13
  • 基于C#实现语音识别功能详解
    在.NET4.0中,我可以借助System.Speech组件让电脑来识别我们的声音。 以上,当我说"name",显示"Darren",我说&...
    99+
    2022-11-13
  • Python如何实现语音合成小工具
    这篇文章主要讲解了“Python如何实现语音合成小工具”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python如何实现语音合成小工具”吧!TTS简介TTS(Text To Speech)是...
    99+
    2023-07-04
  • Python实现多功能音乐播放器详解
    目录前言准备工作知识点和所需模块环境完整代码效果展示导入模块界面按钮功能创建一个文件目录音乐读取功能显示已加载的音乐播放音乐停止播放下一首上一首音量控制关闭窗口前言 就是用Pytho...
    99+
    2022-11-13
  • Python如何进行语音识别,语音转换功能实现
    Python如何进行语音识别,语音转换功能实现,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。相信大家都非常喜欢那些萝莉音,看那些女装大佬,开一个变声器声音实在是很有诱惑力,下面...
    99+
    2023-06-02
  • Python调用讯飞语音合成API接口来实现文字转语音
    目录准备工作发送请求格式转换pydubFFmpeg准备工作 在编写代码和调用API之前,首先需要准备好以下项: 讯飞开放平台账户:用户可以免费注册讯飞开放平台,并创建应用程序,以获得...
    99+
    2023-05-17
    Python实现文字转语音 Python调用讯飞语音合成API接口
  • Python详解文字转语音的实现
    前言: 这是一篇简单的Python文字(汉字)转语音教程,当然对于其他语言工具在实现的方法上也是一样的 。 汉字转语音实现就分为两步,第一步将汉字转为拼音,第二步通过拼音调用相匹配的...
    99+
    2022-11-13
  • Python语音合成的项目实战(PyQt5+pyttsx3)
    目录TTS简介安装需要的包UI界面 功能代码语音工具类窗体类完整代码TTS简介 TTS(Text To Speech)是一种语音合成技术,可以让机器将输入文本以语音的方式播...
    99+
    2023-02-08
    Python语音合成 PyQt5 pyttsx3语音合成
  • C#实现汉字转拼音(多音字)功能详解
    缘由:根据姓名创建账号,存在生僻字以及多音字 做法:自己根据网上信息自己写了类,词库可能不完整(有待补充) 其他不多说了,先上代码如下: using System; using Sy...
    99+
    2023-02-15
    C#实现汉字转拼音 C#汉字转拼音 C# 汉字 拼音
  • C#实现语音播报功能
    本文实例为大家分享了C#实现语音播报功能的具体代码,供大家参考,具体内容如下 环境: window10vs2019 16.5.5.netframework4.5 一、关于语音播报 语...
    99+
    2022-11-13
  • JS实现谷歌浏览器插件拷贝语音功能详解
    目录介绍正文基础配置获取内容语音朗读结语介绍 相信前端的小伙伴对谷歌浏览器插件开发并不陌生,或许你会想到,当习得这个技能后最后又能做些什么呢?当然又很多,本期就带大家去实现一个插件,...
    99+
    2022-11-13
  • Linux下怎么用python实现语音识别功能
    这篇文章主要介绍“Linux下怎么用python实现语音识别功能”,在日常操作中,相信很多人在Linux下怎么用python实现语音识别功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux下怎么用py...
    99+
    2023-07-05
  • C#实现文本转语音功能
    由于最近的工作需要用到文本转语音的功能,在网上找到的资料有些不完整,特此记录下整个完整功能。 这种方式的优点在于不会被浏览器限制,在js的文本转语音功能中,谷歌高版本的浏览器会阻止通...
    99+
    2022-11-13
  • C#实现文字转语音功能
    本文实例为大家分享了C#实现文字转语音的具体代码,供大家参考,具体内容如下 客户提出要求,将文字内容转为语音,因为内网环境,没办法采用联网,在线这种方式,灵机一动,能否写一个简单的例...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作