2024 年最新 Python 基于百度智能云实现短语音识别详细教程

百度智能云语音识别

采用国际领先的流式端到端语音语言一体化建模算法,将语音快速准确识别为文字,支持手机应用语音交互、语音内容分析、机器人对话等场景。百度短语音识别可以将 60 秒以下的音频识别为文字。适用于语音对话、语音控制、语音输入等场景。

python 复制代码
接口类型:通过 REST API 的方式提供的通用的 HTTP 接口。适用于任意操作系统,任意编程语言
接口限制:需要上传完整的录音文件,录音文件时长不超过 60 秒。浏览器由于无法跨域请求百度语音服务器的域名,因此无法直接调用API接口。
支持音频格式:pcm、wav、amr、m4a
音频编码要求:采样率 16000、8000(仅支持普通话模型),16 bit 位深,单声道(音频格式查看及转换)

创建新应用

安装语音识别 Python SDK

SDK 下载安装地址:https://ai.baidu.com/sdk#asr

语音识别 Python SDK目录结构

python 复制代码
├── README.md
├── aip                   //SDK目录
│   ├── __init__.py       //导出类
│   ├── base.py           //aip基类
│   ├── http.py           //http请求
│   └── speech.py 		  //语音识别
└── setup.py              //setuptools安装

安装使用 Python SDK

python 复制代码
如果已安装 pip,执行 pip install baidu-aip 即可。
如果已安装 setuptools,执行 python setup.py install 即可。

新建 AipSpeech

AipSpeech是语音识别的Python SDK客户端,为使用语音识别的开发人员提供了一系列的交互方法。常量APP_ID在百度云控制台中创建,常量API_KEY与SECRET_KEY是在创建完毕应用后,系统分配给用户的,均为字符串,用于标识用户,为访问做签名验证,可在AI服务控制台中的应用列表中查看。

python 复制代码
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)

配置 AipSpeech

如果用户需要配置AipSpeech的网络请求参数(一般不需要配置),可以在构造 AipSpeech 之后调用接口设置参数。

SDK 接口文档

接口描述:向远程服务上传整段语音进行识别

请求说明:举例,要对段保存有一段语音的语音文件进行识别:

python 复制代码
def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()

client.asr(get_file_content('audio.pcm'), 'pcm', 16000, {
    'dev_pid': 1537,
})

接口函数说明

dev_pid 参数列表

返回数据参数详情

复制代码
{
    "err_no": 0,
    "err_msg": "success.",
    "corpus_no": "15984125203285346378",
    "sn": "481D633F-73BA-726F-49EF-8659ACCC2F3D",
    "result": ["北京天气"]
}

详细接口文档:https://ai.baidu.com/ai-doc/SPEECH/0lbxfnc9b

本地语音识别案例

读取本地 pcm 语音文件,识别语音的内容。

python 复制代码
from aip import AipSpeech


def get_file_content(filePath):
    """
    读取本地文件
    :param filePath: 
    :return: 
    """
    with open(filePath, 'rb') as fp:
        return fp.read()


def recognize_audio(client: AipSpeech, filePath: str):
    """
    识别本地 pcm 语音文件
    :param client:
    :param filePath:
    :return:
    """
    result = client.asr(get_file_content(filePath), 'pcm', 16000, {
        'dev_pid': 1537,
    })
    return result['result'][0]

主函数源码

python 复制代码
import os
import time
from aip import AipSpeech
import dotenv

import baidu_speech_tool

dotenv.load_dotenv(".env")

APP_ID = os.getenv("APP_ID")
API_KEY = os.getenv("API_KEY")
SECRET_KEY = os.getenv("SECRET_KEY")

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

"""记录开始时间"""
start_time = time.time()

filePath = "2024060302300905.pcm"

result = baidu_speech_tool.recognize_audio(client=client, filePath=filePath)
"""记录结束时间"""
end_time = time.time()

"""计算并打印执行时间"""
execution_time = end_time - start_time
print(f"Execution time: {execution_time: .4f} seconds")

"""识别结果"""
print(result)

常见调用问题

access_token 错误 API_KEY / SECRET_KEY 错误

复制代码
    params['access_token'] = authObj['access_token']
                             ~~~~~~~^^^^^^^^^^^^^^^^
KeyError: 'access_token'

Process finished with exit code 1
相关推荐
打工仔折腾 AI3 分钟前
鸿蒙端ToDesk远控电脑实测:蓝牙键鼠、双模式鼠标与跨端剪贴板实践
后端·python·性能优化·计算机外设·电脑·harmonyos·ai agent 实战
kimnoic8 分钟前
Python变量与数据类型全解析(最新整理)
开发语言·python
Python图像识别19 分钟前
46-【2027毕设】YOLO11田间杂草检测识别系统 - Python完整源码+PyQt5界面+训练模型+数据集
python·qt·课程设计
计算机编程指导师21 分钟前
计算机毕设选题:基于Spark+Django的水质多指标关联分析与可视化系统源码 毕业设计 选题推荐 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·水质
梦想的颜色24 分钟前
【AI速览】TTS 语音克隆 + 音色稳定 + 长文本断句 + 数字人驱动全解
人工智能·语音识别·indextts2
小白快快跑哦29 分钟前
python-字符串全解(六):正则表达式-分组
python·mysql·正则表达式·分组
计算机编程指导师31 分钟前
【大数据毕设】Hadoop+Spark台北市住宅价格数据可视化分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·住宅价格
高级程序源9 小时前
django校园寻物通失物招领平台32261-计算机课程设计、毕业设计
vue.js·python·mysql·小程序·django·flask·课程设计
WeiXin_DZbishe9 小时前
基于springboot宠物领养系统-计算机毕设 附源码【课程设计】94217
vue.js·spring boot·python·django·php·课程设计
kimnoic9 小时前
Python数据库学习心得:SQLite、MySQL、PostgreSQL优缺点
开发语言·python