python+百度AI 文字转换成语音

       进入百度AI官网,依次点击:开放能力-> 语音技术 -> 语音合成-> 短文本在线合成-> 立即使用-> 登录

创建应用

先去领取免费的接口,选择语音合成,然后将需要的接口打对勾,左下角0元领取。

 

然后在这里填写

创建完毕,查看应用详情,得到APIKey,SecretKey

python代码如下:

python代码:

import time
import requests
import urllib.parse
import urllib.request

def fetch_token(): # 提交请求,拿到token
    api_key = '?'
    secret_key = '?'
    
    token_url = "https://openapi.baidu.com/oauth/2.0/token"
    
    params = {"grant_type": "client_credentials", 
              "client_id": api_key, "client_secret": secret_key}
    r = requests.get(url=token_url, params=params)
    if r.status_code == 200:
        rstr = r.json()
        tok = rstr['access_token']
        return(tok)
    else:
        print(r.text)
        print('请求错误!')

if __name__ == '__main__':
    token = fetch_token()
    TTS_URL = "https://tsn.baidu.com/text2audio"
    text = u"莫听穿林打叶声,何妨吟啸且徐行。竹杖芒鞋轻胜马。".encode('utf8')

    #发音人,基础音库:0为度小美,1为度小宇,3为度逍遥,4为度丫丫;
    #精品音库5为度小娇,103为度米朵,106为度博文,110为度小童,111为度小萌,默认为度小美
    PER = 106

    SPD = 5       #语速,取值0-15,默认为中语速(5)
    PIT = 5       #音调,取值0-15,默认为中语调(5)
    VOL = 5       # 音量,取值0-9,默认为中音量(5)
    
    
    AUE = 3       #文件格式, 3:mp3(default)  4:pcm-16k  5:pcm-8k  6.wav

    FORMATS = {3: "mp3", 4: "pcm", 5: "pcm", 6: "wav"}
    FORMAT = FORMATS[AUE]
    
    data = urllib.parse.urlencode({'tex': text, 'per': PER, 
            'tok': token, 'cuid': '20009514', 
            'ctp': 1, 'lan': 'zh', 'aue': AUE})

    req = requests.post(TTS_URL, data)
    print(req.status_code)
    
    if req.status_code == 200:
        result_str = req.content
        
        save_file = r'F:\py_data\word_voice\test.mp3'       #文件保存路径
        with open(save_file, 'wb') as of:
            of.write(result_str)
        print('success!')
    else:
        print('has error!')

效果如图

 python读取MP3文件,需要先pip install playsound安装playsound,然后执行代码:

from playsound import playsound

playsound(r'F:\py_data\word_voice\test.mp3')  #MP3文件路径

将两者合在一起

import time
import requests
import urllib.parse
import urllib.request
from playsound import playsound

def fetch_token(): # 提交请求,拿到token
    api_key = '?'
    secret_key = '?'
    
    token_url = "https://openapi.baidu.com/oauth/2.0/token"
    
    params = {"grant_type": "client_credentials", "client_id": api_key, "client_secret": secret_key}
    r = requests.get(url=token_url, params=params)
    if r.status_code == 200:
        rstr = r.json()
        tok = rstr['access_token']
        return(tok)
    else:
        print(r.text)
        print('请求错误!')

if __name__ == '__main__':
    token = fetch_token()
    TTS_URL = "https://tsn.baidu.com/text2audio"
    text = u"莫听穿林打叶声,何妨吟啸且徐行。竹杖芒鞋轻胜马。谁怕?一蓑烟雨任平生。料峭春风吹酒醒,微冷,山头斜照却相迎。回首向来萧瑟处,归去。也无风雨也无晴。".encode('utf8')

    PER = 106      #发音人,基础音库:0为度小美,1为度小宇,3为度逍遥,4为度丫丫;精品音库5为度小娇,103为度米朵,106为度博文,110为度小童,111为度小萌,默认为度小美
    
    SPD = 5       #语速,取值0-15,默认为中语速(5)
    PIT = 5       #音调,取值0-15,默认为中语调(5)
    VOL = 5       # 音量,取值0-9,默认为中音量(5)
    
    
    AUE = 3       #文件格式, 3:mp3(default)  4:pcm-16k  5:pcm-8k  6.wav

    FORMATS = {3: "mp3", 4: "pcm", 5: "pcm", 6: "wav"}
    FORMAT = FORMATS[AUE]
    
    data = urllib.parse.urlencode({'tex': text, 'per': PER, 'tok': token, 'cuid': '20009514', 'ctp': 1, 'lan': 'zh', 'aue': AUE})

    req = requests.post(TTS_URL, data)
    print(req.status_code)
    
    if req.status_code == 200:
        result_str = req.content
        
        save_file = r'F:\py_data\word_voice\test.mp3'       #文件保存路径
        with open(save_file, 'wb') as of:
            of.write(result_str)
        print('success!')
        playsound(save_file) 
    else:
        print('has error!')
        

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你可以使用百度AI语音识别API来实现将麦克风中的语音转换为文字。下面是使用Python的示例代码: 首先,你需要在百度AI开放平台上创建一个应用,获取到应用的API Key和Secret Key。 然后,你可以使用Python中的`speech_recognition`库来录制麦克风中的语音,并将语音发送给百度AI语音识别API进行处理。 下面是一个示例代码: ```python import speech_recognition as sr import requests # 设置百度AI的API Key和Secret Key API_KEY = 'your_api_key' SECRET_KEY = 'your_secret_key' # 创建一个Recognizer对象 r = sr.Recognizer() # 使用麦克风录制语音 with sr.Microphone() as source: print("请开始说话...") audio = r.listen(source) # 将语音发送给百度AI语音识别API url = 'https://vop.baidu.com/server_api' data = { 'format': 'wav', 'rate': 16000, 'channel': 1, 'cuid': 'your_cuid', 'token': 'your_token', 'speech': audio.get_wav_data(), } headers = { 'Content-Type': 'application/json' } response = requests.post(url, json=data, headers=headers) # 解析返回的结果 result = response.json() if result['err_no'] == 0: print("识别结果:", result['result'][0]) else: print("识别失败:", result['err_msg']) ``` 在上述代码中,你需要将`your_api_key`和`your_secret_key`替换为你在百度AI开放平台上创建应用时所获得的API Key和Secret Key。同时,你还需要设置一个`cuid`和`token`,可以随意设置。 运行上述代码后,它会使用麦克风录制一段语音,并将语音发送给百度AI语音识别API进行处理,最后打印出识别的结果。 希望对你有帮助!如果有任何问题,请随时向我提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SU_ZCS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值