08-百度ai语音合成

网址:http://ai.baidu.com/
在这里插入图片描述
在这里插入图片描述
百度AI实现的爬虫功能:

  • 图像识别
  • 语音识别/语音合成
  • 自然语言处理
    使用流程
  • 点击控制台登录
  • 选择想要的功能
  • 在功能下创建一个app
  • 选择对应的pythonSDK文档进行代码实现

语音合成案例:
首先在百度ai上创建一个应用
在这里插入图片描述
在这里插入图片描述
选择pythonSDK进行下载
在这里插入图片描述
找到python接入文档
在这里插入图片描述

├── README.md
├── aip                   //SDK目录
│   ├── __init__.py       //导出类
│   ├── base.py           //aip基类
│   ├── http.py           //http请求
│   └── speech.py //语音合成
└── setup.py              //setuptools安装

支持Python版本:2.7.+ ,3.+

安装使用Python SDK有如下方式:

如果已安装pip,执行pip install baidu-aip即可。
如果已安装setuptools,执行python setup.py install即可。
在这里插入图片描述
新建AipSpeech
AipSpeech是语音合成的Python SDK客户端,为使用语音合成的开发人员提供了一系列的交互方法。

参考如下代码新建一个AipSpeech:

from aip import AipSpeech

""" 你的 APPID AK SK """
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

在上面代码中,常量APP_ID在百度云控制台中创建,常量API_KEY与SECRET_KEY是在创建完毕应用后,系统分配给用户的,均为字符串,用于标识用户,为访问做签名验证,可在AI服务控制台中的应用列表中查看。
创建文件 baidu_ai.py

代码如下:

import time
from aip import AipSpeech

""" 你的 APPID AK SK """
APP_ID = '11212345'
API_KEY = 'pVxdhsXS1BIaiwYYNT712345'
SECRET_KEY = 'BvHQOts27LpGFbt3RAOv84WfPCW12345'

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

请求说明
合成文本长度必须小于1024字节,如果本文长度较长,可以采用多次请求的方式。文本长度不可超过限制
举例,要把一段文字合成为语音文件:

# -*- coding: utf-8 -*-

from aip import AipSpeech



#""" 你的 APPID AK SK """
APP_ID = '17531111'
API_KEY = 'eWDP4HmOxpQNb1TvaXK1111'
SECRET_KEY = '1aRHzK4ePL126wf8hubkLeo2rc11111'

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
result  = client.synthesis('你好,我是百度ai请输入你需要转换为语音的文字在此处', 'zh', 1, {
    'vol': 4,
})

# 识别正确返回语音二进制 错误则返回dict 参照下面错误码
if not isinstance(result, dict):
    with open('gpc.mp3', 'wb') as f:
        f.write(result)

在这里插入图片描述
参数分析:

result  = client.synthesis(
    '你好百度', # text: 合成的文本,使用UTF-8编码,请注意文本长度必须小于1024字节
    'zh',  # lang: 语言,中文:zh 英文:en
    1,  # ctp: 客户端信息这里就写1,写别的不好使,至于为什么咱们以后再解释
    {
    'vol': 5,  # 合成音频文件的准音量
    'spd':4,  # 语速 取值0-9,默认为5 中语速
    'pit':8,  # 语调音调,取值0-9,默认为5 中语调
    'per':4, # 发音人选择,0为女生,1为男生,3为情感合成-度逍遥,4为情感合成-度丫丫,默认为普通女
    }
)

修改后的:

# -*- coding: utf-8 -*-

from aip import AipSpeech
import time


#""" 你的 APPID AK SK """
APP_ID = '21387290'
API_KEY = 'Ec6GtZgm3ndOaMlkbXRUF9Lc'
SECRET_KEY = 'W9NzglKMstljy61kRZXHwl8hk2MXS8Ex'

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

while True:
    input_text = input('-------------
输入1退出!请输入需要转为语音的文字:')
    if input_text == '1':
        print('---------
感谢使用!再见!')
        time.sleep(3)
        break
    else:
        voice_type = int(input('
0为女声,
1为男声,
3为情感合成-度逍遥,
4为情感合成-度丫丫,
请输入需要哪种语音类型:'))
        result  = client.synthesis(input_text, 'zh', 1, {
            'vol': 5,
            'per': voice_type
        })

        # 识别正确返回语音二进制 错误则返回dict 参照下面错误码
        save_name = 'D:/py/爬虫学习笔记/aip-python-sdk-2.0.0' + input_text[:20] + '.mp3'
        print ('-----------
保存路径为:',save_name)
        if not isinstance(result, dict):
            with open(save_name, 'wb') as f:
                f.write(result)
                print('转换完成!')

原文地址:https://www.cnblogs.com/gemoumou/p/13635337.html