语音识别插件_python如何实现语音合成

本文介绍了如何通过Python代码结合百度语音技术实现语音合成。首先需要注册并创建百度智能云应用,获取API Key。然后利用提供的Python代码,设置发音人、语速、音调等参数,并调用百度接口将文本转换为语音,最终保存为WAV文件。此方法适用于开发智能系统,如树莓派上的家庭语音机器人应用。
摘要由CSDN通过智能技术生成

1.直接上Python代码,不过你需要准备一下。首先你需要注册一下百度账号,登录百度智能云。链接:https://cloud.baidu.com/

c94859616cdce0a8cd05da1b9547189e.png

2.注册成功后就可以管理控制台了

1fe52f49277c22709e456be9a846f410.png

3.选择网页下面的语音技术

f7cefecb1db952d4f0f2f727941abd91.png

4.然后选择创建应用

7ef5cb38cbd38d33dcdd6bb9c7516b96.png

5.然后在输入你需要创建的应用名称和简单的描述一下 ,名称如:人机对话,描述如:家庭智能语音机器人

ed9b5183b8394ee6fe3bfa7930c5b23d.png

6.创建完成后就可以管理应用了

1273d99e9f9056fccebf12f26234ac11.png

7.在管理应用里面就能看到百度给你的key

1dee2d45a3c4fdffe3668ff4b1be74a7.png

8.得到key就可以结合下面的代码实现语音识别。

#!/usr/bin/python3
# -*- coding: utf-8 -*-
from urllib.request import urlopen
from urllib.request import Request
from urllib.error import URLError
from urllib.parse import urlencode
from urllib.parse import quote_plus
import json,requests



class Speech_synthesis():
    '''百度语音合成'''

    def __init__(self):
        # 发音人选择, 0为普通女声,1为普通男生,3为情感合成-度逍遥,4为情感合成-度丫丫,默认为普通女声
        self.PER = 4
        # 语速,取值0-15,默认为5中语速
        self.SPD = 5
        # 音调,取值0-15,默认为5中语调
        self.PIT = 5
        # 音量,取值0-9,默认为5中音量
        self.VOL = 5
        # 下载的文件格式, 3:mp3(default) 4: pcm-16k 5: pcm-8k 6. wav
        self.AUE = 6

        self.TTS_URL = "http://tsn.baidu.com/text2audio"

  

    def key(self):
        #获取token秘钥
        body = {
            "grant_type"    : "client_credentials",
            "client_id"     : "填写百度给你的API Key",
            "client_secret" : "填写百度给你的Secret Key"
        }
        url  = "https://aip.baidubce.com/oauth/2.0/token?"
        r = requests.post(url,data=body,verify=True,timeout=2)
        respond = json.loads(r.text)
        return  respond["access_token"]



    '''
    语音合成主函数
    '''
    def main(self,enobj):


        try:

            tex = quote_plus(enobj)  # 此处re_text需要两次urlencode
            
            params = {'tok': self.key(), 'tex': tex, 'per': self.PER, 'spd': self.SPD,
                    'pit': self.PIT, 'vol': self.VOL, 'aue': self.AUE, 'cuid': "123456PYTHON",'lan': 'zh', 'ctp': 1}  # lan ctp 固定参数
                
            data = urlencode(params)

            req = Request(self.TTS_URL, data.encode('utf-8'))
     

            try:
                f = urlopen(req,timeout=4)
                result_str = f.read()

                with open('16k.wav', 'wb') as of:
                    of.write(result_str)

            except Exception as bug:

                return {'state': False,'data':'','msg':'可能是网络超时。'}

        except:
            return {'state': False,'data':'','msg':'可能是网络超时。'}



if __name__ == '__main__':
    print(Speech_synthesis().main('你好'))

9.运行结果

6d910da8e03af152e89676a7e8313bb8.png

我正在做公司里一个运行在树莓派上的自美智能系统的项目开发。自美树莓派智能系统已经公布和开源了,还开发了一些配合这个系统的智能硬件,基于这个系统,可以开发python 代码应用插件,就不需要写语音识别,语音合成,语音唤醒,人脸识别,系统维护,系统架构,微信小程序这些基础代码了,你只需要想好触发词和写好插件功能代码即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值