百度智能云千帆部署流程---语音识别和合成

目录

一、前期准备

二、语音合成

三、语音识别


实现整个流程如下图,但是我们的工作量并不是很多,我们可以在官网找到示例代码

一、前期准备

这里我们使用到3个代码

API_KEY.py 填写我们的API
xzarm_asr.py 语音识别
xzarm_tts.py 语音合成

python 复制代码
# API_KEY.py
# 小智-学长 2024-10-19

# 百度智能云千帆AppBuilder-SDK
#https://console.bce.baidu.com/ai_apaas/secretKey
APPBUILDER_TOKEN = "bce-v3/ALTAK-zQsH6******"#语音合成

# 百度智能云千帆ModelBuilder
# https://console.bce.baidu.com/ai/#/ai/speech/overview/index
APPBUILDER_token = "25.548acf45ed740******"#语音识别

后期我们可能用到这两个网站,我们先暂时放置在这里,分别使用到百度智能云千帆AppBuilder-SDK、ModelBuilder,对应着语音合成和语音识别。

百度智能云千帆AppBuilder-SDKhttps://console.bce.baidu.com/ai_apaas/secretKey

语音合成:百度智能云千帆AppBuilder-SDK

百度智能云千帆ModelBuilderhttps://console.bce.baidu.com/ai/#/ai/speech/overview/index

语音识别:百度智能云千帆ModelBuilder

我们先安装用到的库

python 复制代码
pip install --upgrade appbuilder-sdk

下载速度慢可能是由于网络连接不稳定或者与 PyPI 的服务器距离较远。你可以尝试以下几种方法来加快下载速度:

国内的 PyPI 镜像源速度通常更快,可以通过指定源来加速下载。例如,使用阿里云镜像

python 复制代码
pip install --upgrade nodezator -i https://mirrors.aliyun.com/pypi/simple/

其他常见的国内镜像源:

  • 清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/
  • 豆瓣:https://pypi.doubanio.com/simple/

将以上 URL 替换到 -i 后即可。

二、语音合成

打开我们的网址百度智能云千帆AppBuilder,点击"密钥管理",没有密钥的话就新建一个

记录这个值,填写到API_KEY.py 的APPBUILDER_TOKEN

需要填写:xzarm_tts_tts(TEXT=' ', tts_wav_path = ' ')
运行代码将保存语音文件wav到指定的文件夹下

python 复制代码
# xzarm_tts.py
# 小智-学长 2024-5-23
# 语音合成

print('导入语音合成模块')

import os
import appbuilder
from API_KEY import *
os.environ["APPBUILDER_TOKEN"] = APPBUILDER_TOKEN
tts_ab = appbuilder.TTS()


def xzarm_tts_tts(TEXT='我是小智大模型AI机械臂,您可以说出你的要求,我会一一完成要求', tts_wav_path = 'temp/xzarm_tts_tts.wav'):
    '''语音合成TTS,生成wav音频文件'''
    inp = appbuilder.Message(content={"text": TEXT})
    out = tts_ab.run(inp, model="paddlespeech-tts", audio_type="wav")
    with open(tts_wav_path, "wb") as f:
        f.write(out.content["audio_binary"])
    print("TTS语音合成,导出wav音频文件至:{}".format(tts_wav_path))
xzarm_tts_tts(TEXT='我是大模型AI机械臂,您可以说出你的要求,我会一一完成要求哦', tts_wav_path = 'temp/xzarm_tts_tts.wav')

三、语音识别

打开我们的网址语音技术 - 百度智能云控制台,点击"应用列表" "创建应用"

我们点击"API在线调试",找到refresh_token的值,填到API_KEY.py 的APPBUILDER_token

记录这个值,填写到API_KEY.py 的APPBUILDER_token

运行代码将显示出识别的结果,如果不是,请查看错误码对应的问题。

python 复制代码
# xzarm_asr.py
# 小智-学长 2024-10-19
# 录音+语音识别

print('导入录音+语音识别模块')
import os,json,base64,requests
from API_KEY import *

def xzarm_asr_recognition(audio_path='temp/speech_record.wav'):
    """
    录音文件的语音识别,返回识别结果
    :param audio_path: 需要识别的音频文件路径
    :return: 语音识别结果文本
    """
    url = "https://vop.baidu.com/server_api"
    
    # 读取音频文件并进行Base64编码
    with open(audio_path, "rb") as f:
        content = base64.b64encode(f.read()).decode("utf8")
        size = os.path.getsize(audio_path)

    # 准备请求数据
    payload = json.dumps({
        "format": "pcm",
        "rate": 16000,
        "channel": 1,
        "cuid": "Hy5qg1neIBkl8ltIHWefF6uwTtNBmF49",
        "token": APPBUILDER_token,
        "speech": content,
        "len": size
    })
    headers = {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    }
    
    # 发起POST请求
    response = requests.post(url, headers=headers, data=payload)
    response_data = response.json()
    
    # 解析并返回识别结果
    if 'result' in response_data:                
        text = response_data['result'][0]
        print('语音识别结果::', text)
        return text
    else:
        print("识别失败:", response_data)
        return None
xzarm_asr_recognition(audio_path='temp/xzarm_tts_tts.wav')

结果:

相关推荐
兵慌码乱6 小时前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析
python·sqlite·信号与槽·pyqt5·数据库设计·桌面应用开发·事务处理
金銀銅鐵7 小时前
[Python] 体验用欧几里得算法计算最大公约数的过程
python·数学
FreakStudio11 小时前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
用户03321266636712 小时前
使用 Python 从零创建 Word 文档
python
Csvn17 小时前
Python 两大经典坑点 —— 可变默认参数 & 闭包延迟绑定
后端·python
曲幽18 小时前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
用户5569188175319 小时前
#从脚本到独立程序:Python + Playwright 批量抓取的完整踩坑记录
python·自动化运维
兵慌码乱1 天前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
luckdewei2 天前
FastAPI 资产管理系统实战:复杂 ORM 关联、Alembic 迁移与 N+1 查询优化
python