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

百度智能云语音识别

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

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

在这里插入图片描述

创建新应用

在这里插入图片描述

安装语音识别 Python SDK

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

语音识别 Python SDK目录结构

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

安装使用 Python SDK

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

新建 AipSpeech

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

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 接口文档

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

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

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 语音文件,识别语音的内容。

from aip import AipSpeechdef 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]

主函数源码

import os
import time
from aip import AipSpeech
import dotenvimport baidu_speech_tooldotenv.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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/850231.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【kubernetes】k8s集群中的ingress(对外服务)规则详解

目录 一、Ingress 简介 1.1service的作用 1.2外部访问方案 (四种)🌹🌹🌹 部署externalIPs 1.3Ingress 是什么 二、Ingress 组成🌹🌹🌹 三、Ingress 工作原理🐱&#x1f…

STM32F103C8T6基于HAL库完成uC/OS-III多任务程序

一、在STM32CubeMX中建立工程 配置RCC 配置SYS 配置PC13为GPIO_Output 配置USART1 生成代码 二、获取uC/OS-III源码 官网下载地址:Micrium Software and Documentation - Silicon Labs 网盘下载:百度网盘 请输入提取码 提取码:lzjl 三、复…

深入解析Java HashMap的putVal方法

Java中的HashMap是我们在开发中经常使用的集合之一,它提供了基于哈希表的数据存储方式,使得对数据的插入、删除和查找操作都具有较高的效率。在本文中,我们将深入解析HashMap中的putVal方法,揭示其内部工作原理。通过对代码的逐行…

【QT5】<应用> 小游戏:贪吃蛇

文章目录 一、项目要求 二、需求分析 三、实现效果 四、代码 一、项目要求 【1】主要实现:游戏界面存在一条蛇🐍,使用键盘wsad或者↑↓←→键盘可以控制蛇的行走方向。同时界面中会随机出现食物,蛇可以吃食物,然后…

前端面试题日常练-day59 【面试题】

题目 希望这些选择题能够帮助您进行前端面试的准备,答案在文末 1. 在PHP中,以下哪个符号用于比较两个值的相等性? a) b) c) d) ! 2. PHP中的预定义变量$_POST用于获取什么类型的数据? a) 用户的输入数据 b) 浏览器发送的请…

近期面试HW中级蓝问题(非常详细)零基础入门到精通,收藏这一篇就够了

01 — HW问题 1.sqlmap拿shell的原理,需要什么条件,–os-shell的原理 2.冰蝎的流量特征 3.哥斯拉的流量特征 4.如果判断一个web是s2写的 5.fastjson了解嘛?Log4j了解嘛?如何在流量中发现Log4j的攻击特征 6.HW前的准备工作…

正则表达式的详解带你认识正则表达式的意义

前言 ​ 我们都知道协议通常通过添加固定的字符、报头、特定的数字等来定义数据的结构和格式。将正确的信息提取出来是十分重要的,而正则表达式可以用来描述和匹配这些固定的结构,从而提取出所需的信息。并且正则表达式还可以处理大量复杂的字符串。这篇…

微信小程序基础工作模板

1.轮播图 点击跳转官方文档 简单例子 <!-- 顶部轮播图 --> <swiper indicator-dots"true" class"banner" autoplay"true" interval"2000"><swiper-item><image src"../../images/轮播图1.jpg" >…

LeetCode 239.滑动窗口最大值【困难】

思路 构建一个单调递增的队列类型&#xff0c;pop和push操作在队列内部进行特殊定义&#xff08;队头存储当前滑动窗口的最大值&#xff1b;队列中比插入元素小的队尾元素均要移除&#xff1b;比队尾元素小的元素直接插入队列&#xff1b;当滑动窗口移除的元素和队头元素相等时…

解决:git SSL certificate problem: unable to get local issuer certificate

解决&#xff1a;git SSL certificate problem: unable to get local issuer certificate 错误&#xff1a; git SSL certificate problem: unable to get local issuer certificate 这个问题是由于没有配置信任的服务器HTTPS验证。默认&#xff0c;cURL被设为不信任任何CAs&a…

【JMeter接口测试工具】第二节.JMeter基本功能介绍(下)【入门篇】

文章目录 前言八、Jmeter常用逻辑控制器 8.1 如果&#xff08;if&#xff09;控制器 8.2 循环控制器 8.3 ForEach控制器九、Jmeter关联 9.1 正则表达式提取器 9.2 xpath提取器 9.3 JSON提取器十、跨越线程组传值 10.1 高并发 10.2 高频…

vue3第三十七节(自定义插件之自定义指令)防重指令

引言&#xff1a;自定义指令&#xff0c;我们可以通过插件的形式进行全局注册&#xff1a; 例如&#xff1a;在提交按钮请求接口时候&#xff0c;为了防止重复提交&#xff0c;而导致的请求资源浪费&#xff0c;或者是新增提交时候&#xff0c;防止新增相同的数据。 我们的全局…

力扣930.和相同的二元子数组

力扣930.和相同的二元子数组 哈希表法 最终[l,r]区间和为goal sum为记录的非递减前缀和 sum[r] - sum[l] goal因此遍历右端点时 找到左端点为sum[l]的出现次数即可 class Solution {public:int numSubarraysWithSum(vector<int>& nums, int goal) {int n nums…

关于修改Python中pip默认安装路径的终极方法

别想了&#xff0c;终极方法就是手动复制&#xff0c;不过我可以给你参考一下手动复制的方法 关于手动移动pip安装包的方法 别想了&#xff0c;终极方法就是手动复制&#xff0c;不过我可以给你参考一下手动复制的方法一、首先确认一下pip默认安装路径二、再确认一下需要移动到…

Python中包(package)与模块(module)的概念 以及 import 问题

目录 Python中 包(package) 与 模块(module) 的概念一. Python中, 包 (package) 与 模块 (module) 的概念1. 一个有 __init__.py 文件 的目录, 被视为一个 Python 的 包 (package)2. 一个Python源文件 , 被视为一个模块 (module) 二. 不同包之间 以及 同一个包的不同模块之间的…

信号:干扰类别及特征提取(二)

目录 第二部分&#xff1a;特征提取 一&#xff1a;瞬时特征参数 1.零中心归一化瞬时幅度之谱密度的最大值 2.非弱信号段零中心归一化瞬时幅度的标准偏差 3.零中心归一化瞬时幅度绝对值的标准偏差 4.零中心归一化非弱信号段瞬时频率的标准偏差 5.零中心归一化非弱信号段…

Codeforces Round 951 (Div. 2)

A - Guess the Maximum 直接暴力枚举 a i , a i 1 a_i,a_{i1} ai​,ai1​找最小的最大值 答案即为最小的最大值-1 code: #include<bits/stdc.h> #define endl \n #define fast() ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr) #define F first #…

1118 如需挪车请致电(测试点4)

solution 测试点4&#xff1a;直接给出数字&#xff0c;即零个运算符的情况 #include<iostream> #include<string> #include<map> #include<cmath> using namespace std; int main(){string s, ans "";map<string, int> mp {{&quo…

用HAL库改写江科大的stm32入门-输入捕获原理图示

原理与接线&#xff1a; &#xff08;输入捕获的结构&#xff09; cubeMx: PA11&#xff1a;

OpenCV学习(4.7) Canndy边缘检测

1.目标 在本章中&#xff0c;我们将了解 Canny 边缘检测的概念OpenCV 的功能&#xff1a; cv.Canny&#xff08;&#xff09; Canny边缘检测是一种经典的边缘检测算法&#xff0c;由John F. Canny在1986年提出。Canny算法的目标是找到图像中真正的边缘&#xff0c;同时尽可能…