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
相关推荐
思则变12 分钟前
[Pytest] [Part 2]增加 log功能
开发语言·python·pytest
漫谈网络41 分钟前
WebSocket 在前后端的完整使用流程
javascript·python·websocket
try2find2 小时前
安装llama-cpp-python踩坑记
开发语言·python·llama
道可云2 小时前
道可云人工智能每日资讯|浦东启动人工智能创新应用竞赛
人工智能·百度·ar·xr·deepseek
博观而约取3 小时前
Django ORM 1. 创建模型(Model)
数据库·python·django
精灵vector5 小时前
构建专家级SQL Agent交互
python·aigc·ai编程
Zonda要好好学习5 小时前
Python入门Day2
开发语言·python
Vertira5 小时前
pdf 合并 python实现(已解决)
前端·python·pdf
太凉5 小时前
Python之 sorted() 函数的基本语法
python
项目題供诗5 小时前
黑马python(二十四)
开发语言·python