python语音处理,python 语音

  python语音处理,python 语音

  本文主要介绍一个用Python制作的小工具,可以实现语音识别和文语转换的功能。文中详细讲解了实现步骤,有兴趣的可以一试。

  00-1010简介1。直接使用2。访问权限2.1环境准备:2.2访问权限3。代码实现3.1 access_token3.2访问转换后的音频3.3配置接口参数3.4完成演示3.5执行

  

目录

  今天给大家带来一个语言识别和语言造词的小工具。铁汁萌,有兴趣的可以滑下来。

  

导语

  1.2在官网注册后,获取APISecret和APIKey,直接复制2.4条的2.4demo代码,保存为online_tts.py,在命令行执行。

  Python _ tts.py-client _ secret=你的客户端_secret -client_id=你的客户端_ id-file _ save _ path=test . wav-text=今天天气真好

  

1.直接使用

  Python调用标准shell技术语音合成接口实现文本到语音

  

2. 获取权限

  Python 3

  

2.1 环境准备:

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

  登录

  点击产品地址登录,短信、密码、微信均可登录。

  2.2.2创建新应用

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

  2.2.3选择服务

  进入【已创建应用】,左侧选择需要调用的AI技术服务,右侧显示相应服务页面的概述(可以查询使用情况、管理套餐、购买服务数量、自主获取授权、管理预警)。

  获取密钥密码

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

  得到钥匙和秘密,你就可以正式使用它了!

  

2.2 获取权限

  

3. 代码实现

  在得到密钥和秘密后,我们还需要调用授权接口来获得access_token,其有效期为24小时。

  #获取用于身份验证的访问令牌

  def get_access_token(客户端_secret,客户端_id):

  grant_type=客户端凭据

  URL= https://open API . data-baker.com/oauth/2.0/token?grant _ type={ } client _ secret={ } client _ id={ } 。格式(授权类型、客户端秘密、客户端id)

  response=requests.post(url)

  access _ token=JSON . loads(response . text)。get(access_token )

  返回访问令牌

  

3.1 获取access_token

  获取access_token后,调用语音合成接口获取生成的音频。

  #获取转换后的音频

  def获取_音频(数据):

  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语音合成的资料请关注盛行IT软件开发工作室其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: