调用百度云API实现语音识别

2023-11-06

一、在云平台创建语音技术应用

(1) 点击百度AI平台短语音识别https://ai.baidu.com/tech/speech/asr,登录百度云账号。
(2) 新用户注册完百度智能云平台后,需要在“语音技术—概览”页面领取语音识别的免费额度,否则后续功能将无法正常使用。在“概述”里面点击“去领取
领取免费语音识别额度
(3) 单击“语音识别”——“领取免费资源”,进入领取免费资源页面;填写相应的信息,接口名称勾选“全部”。弹出领取资源窗口上显示“恭喜您,领取成功”表示领取成功。
领取成功界面
(4) 返回上一页,点击“应用列表”,然后“创建列表”,填写相关的信息,完成语音技术应用的创建。创建完毕后“查看创建列表”(或者重新回到“应用列表”),可以看到云平台为用户生成一个用户信息,包括AppID、API Key和Secret Key
应用详情
参考技术文档:短语音识别https://ai.baidu.com/ai-doc/SPEECH/Vk38lxily

二、完成的语音识别参考程序

注意:下面程序中的智能密钥我已经隐藏掉了,需要自行去百度云平台申领

import wave
from pyaudio import PyAudio,paInt16  #导入音频处理库Pyaudio,没有的话要pip 安装
from aip import AipSpeech

# 设置采样参数
NUM_SAMPLES = 2000
# 默认录音4s
TIME = 4

# 百度智能云平台语音技能密钥
# 请输入您的BaiduAPP_ID,下面自行调用应用哦~
BaiduAPP_ID = 'xxxxxxx'  
# 请输入您的BaiduAPI_KEY      
BaiduAPI_KEY = 'xxxxxxxxxxxxxxxxxxx'
# 请输入您的SECRET_KEY      
SECRET_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxx'
client = AipSpeech(BaiduAPP_ID, BaiduAPI_KEY, SECRET_KEY)

# 保存录音文件
def save_wave_file(filename,data):  
    wf = wave.open(filename,'wb')  # 打开WAV文档
    wf.setnchannels(1)  #配置声道数            
    wf.setsampwidth(2)  #配置量化位数              
    wf.setframerate(16000) #采样频率         
    wf.writeframes(b"".join(data))  # 将wav_data转换为二进制数据写入文件
    wf.close()

# 定义录音函数
def record():
    print('Start recording.')
    # 实例化PyAudio对象,开启声音输入
    pa = PyAudio()  
    # 打开输入流并设置音频采样参数 1 channel 16K framerate 
    stream = pa.open(format = paInt16,
                        channels = 1,
                        rate = 16000,
                        input = True,
                        frames_per_buffer = NUM_SAMPLES)
    # 录音缓存数组
    audioBuffer = []   
    # 循环采集音频 默认录制4s
    count = 0
    while count<TIME*10:
        # 一次性录音采样字节的大小
        string_audio_data = stream.read(NUM_SAMPLES)  
        audioBuffer.append(string_audio_data)
        count +=1
        # 加逗号不换行输出
        print('.', end='')  
    print('')
    print('End recording.')
    # 保存录制的语音文件到audio.wav中并关闭输入流
    save_wave_file('./audio.wav',audioBuffer)
    stream.close()

# 语音识别函数
def asr_updata():
    with open('./audio.wav', 'rb') as f:
        audio_data = f.read()
    result = client.asr(audio_data, 
                        'wav', 16000, {   # 采样频率16K
                        'dev_pid': 1537, 
                                          # 1536 普通话
                                          # 1537 普通话(纯中文识别)
                                          # 1737 英语
                                          # 1637 粤语
                                          # 1837 四川话
                     })
    print(result)  #打印出来,报错的时候可以查看代码
    val = 'result' in result.keys()
    print("val:",val)
    if val == True:   
        result_text = result["result"][0]
    else:
        result_text = '语音未识别'
    return result_text

if __name__ == '__main__':
    record()  #调用录音函数
    result_text = asr_updata()
    print(result_text) 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

调用百度云API实现语音识别 的相关文章

  • 使用Python开发Web应用程序

    我一直在用 python 做一些工作 但这都是针对独立应用程序的 我很想知道 python 的任何分支是否支持 Web 开发 有人还会建议一个好的教程或网站吗 我可以从中学习一些使用 python 进行 Web 开发的基础知识 既然大家都说
  • Python BigQuery 存储。并行读取多个流

    我有以下玩具代码 import pandas as pd from google cloud import bigquery storage v1beta1 import os import google auth os environ G
  • pandas 替换多个值

    以下是示例数据框 gt gt gt df pd DataFrame a 1 1 1 2 2 b 11 22 33 44 55 gt gt gt df a b 0 1 11 1 1 22 2 1 33 3 2 44 4 3 55 现在我想根据
  • keras加载模型错误尝试将包含17层的权重文件加载到0层的模型中

    我目前正在使用 keras 开发 vgg16 模型 我用我的一些图层微调 vgg 模型 拟合我的模型 训练 后 我保存我的模型model save name h5 可以毫无问题地保存 但是 当我尝试使用以下命令重新加载模型时load mod
  • 在循环中每次迭代开始时将变量重新分配给原始值(在循环之前定义)

    在Python中 你使用 在每次迭代开始时将变量重新分配给原始值 在循环之前定义 时 也就是说 original 1D o o o for i in range 0 3 new original 1D revert back to orig
  • Python 中的二进制缓冲区

    在Python中你可以使用StringIO https docs python org library struct html用于字符数据的类似文件的缓冲区 内存映射文件 https docs python org library mmap
  • python 集合可以包含的值的数量是否有限制?

    我正在尝试使用 python 设置作为 mysql 表中 ids 的过滤器 python集存储了所有要过滤的id 现在大约有30000个 这个数字会随着时间的推移慢慢增长 我担心python集的最大容量 它可以包含的元素数量有限制吗 您最大
  • 当玩家触摸屏幕一侧时,如何让 pygame 发出警告?

    我使用 pygame 创建了一个游戏 当玩家触摸屏幕一侧时 我想让 pygame 给出类似 你不能触摸屏幕两侧 的错误 我尝试在互联网上搜索 但没有找到任何好的结果 我想过在屏幕外添加一个方块 当玩家触摸该方块时 它会发出警告 但这花了很长
  • 使用 OpenPyXL 迭代工作表和单元格,并使用包含的字符串更新单元格[重复]

    这个问题在这里已经有答案了 我想使用 OpenPyXL 来搜索工作簿 但我遇到了一些问题 希望有人可以帮助解决 以下是一些障碍 待办事项 我的工作表和单元格数量未知 我想搜索工作簿并将工作表名称放入数组中 我想循环遍历每个数组项并搜索包含特
  • HTTPS 代理不适用于 Python 的 requests 模块

    我对 Python 还很陌生 我一直在使用他们的 requests 模块作为 PHP 的 cURL 库的替代品 我的代码如下 import requests import json import os import urllib impor
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • 如何改变Python中特定打印字母的颜色?

    我正在尝试做一个简短的测验 并且想将错误答案显示为红色 欢迎来到我的测验 您想开始吗 是的 祝你好运 法国的首都是哪里 法国 随机答案不正确的答案 我正在尝试将其显示为红色 我的代码是 print Welcome to my Quiz be
  • Nuitka 未使用 nuitka --recurse-all hello.py [错误] 编译 exe

    我正在尝试通过 nuitka 创建一个简单的 exe 这样我就可以在我的笔记本电脑上运行它 而无需安装 Python 我在 Windows 10 上并使用 Anaconda Python 3 我输入 nuitka recurse all h
  • 如何将 PIL 图像转换为 NumPy 数组?

    如何转换 PILImage来回转换为 NumPy 数组 这样我就可以比 PIL 进行更快的像素级转换PixelAccess允许 我可以通过以下方式将其转换为 NumPy 数组 pic Image open foo jpg pix numpy
  • 在Python中重置生成器对象

    我有一个由多个yield 返回的生成器对象 准备调用该生成器是相当耗时的操作 这就是为什么我想多次重复使用生成器 y FunctionWithYield for x in y print x here must be something t
  • 设置 torch.gather(...) 调用的结果

    我有一个形状为 n x m 的 2D pytorch 张量 我想使用索引列表来索引第二个维度 可以使用 torch gather 完成 然后然后还设置新值到索引的结果 Example data torch tensor 0 1 2 3 4
  • 对输入求 Keras 模型的导数返回全零

    所以我有一个 Keras 模型 我想将模型的梯度应用于其输入 这就是我所做的 import tensorflow as tf from keras models import Sequential from keras layers imp
  • 循环标记时出现“ValueError:无法识别的标记样式 -d”

    我正在尝试编码pyplot允许不同标记样式的绘图 这些图是循环生成的 标记是从列表中选取的 为了演示目的 我还提供了一个颜色列表 版本是Python 2 7 9 IPython 3 0 0 matplotlib 1 4 3 这是一个简单的代
  • 在 Python 类中动态定义实例字段

    我是 Python 新手 主要从事 Java 编程 我目前正在思考Python中的类是如何实例化的 我明白那个 init 就像Java中的构造函数 然而 有时 python 类没有 init 方法 在这种情况下我假设有一个默认构造函数 就像
  • PyAudio ErrNo 输入溢出 -9981

    我遇到了与用户相同的错误 Python 使用 Pyaudio 以 16000Hz 录制音频时出错 https stackoverflow com questions 12994981 python error audio recording

随机推荐

  • Java中如何捕获其他线程抛出的异常

    如Java中另一个线程抛出的异常 可以使用公共静态接口Thread UncaughtExceptionHandler完成 Thread UncaughtExceptionHandler是当线程因未捕获的异常而突然终止时调用的处理程序接口 当
  • vue JS 对象转数组

    option head title 日期 name date width 180 data date 2021 05 27 name 张三 address 上海市浦东新区XX路XX号 转数组 let option this option l
  • 并发编程系列之线程简介

    前言 前几天我们把Java内存模型介绍了下 大家对JMM也有所认识了 从今天我们就开始走进一个我们天天挂在嘴边 听在耳边的东西 线程 对于线程相信大家都不会陌生 当然也有很多小伙伴在开发中或多或少的使用到线程 即使你没有使用过 但是并不代表
  • 【无标题】尤破金11.26黄金原油晚间多空行情策略分析及美原油实时操作建议指导

    黄金行情走势分析 黄金消息面解析 周五 11月26日 亚洲时段 现货黄金小幅上涨 周四 11月25日 金价收十字星 美联储加息前景的影响抵消了美元从16个月高位小幅下滑的支撑 美元周四下滑 但仍接近2020年7月以来最高位 此前公布的美联储
  • MySQL 查询 表 容量大小 索引大小

    所有数据库 select table schema as 数据库 sum table rows as 记录数 sum truncate data length 1024 1024 2 as 数据容量 MB sum truncate inde
  • openGL之API学习(七十二)opengl调试Debug

    现在支持GLSL和OpenGL跟步调试的只有Nvidia的Nsight 只支持Nvidia的显卡 其他的基本都是track 不支持GLSL的跟步调试 比如AMD的GPUPerfClient以及gDEBugger 还有AMD的GPU Shad
  • form表单提交的几种方式

    表单提交方式一 直接利用form表单提交 html页面代码
  • 【华为OD统一考试B卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • libuv介绍--多线程

    原文 url http nikhilm github com uvbook threads html url libuv的线程功能的值得注意的方面是它是一个libuv内部自包含的部分 然而其它的特性密切依赖事件循环和回调原则 线程是完全不知
  • GBDT、XGboost

    1 GBDT的基本原理是什么 采用决策树作为弱分类器的Gradient Boosting算法被称为GBDT 梯度提升决策树 Gradient Boosting Decision Tree GBDT 其基本思想是根据当前模型损失函数的负梯度信
  • 数据中台-让数据用起来-5

    文章目录 第五章 数据汇聚联通 打破企业数据孤岛 5 1 数据采集 汇聚的方法和工具 1 线上行为采集 2 线下行为采集 3 互联网数据采集 4 内部数据汇聚 5 2 数据交换产品 1 数据源管理 2 离线数据交换 3 实时数据交换 5 3
  • 樱花树代码html,樱花树代码

    import turtle as T import random import time 画樱花的躯干 60 t def Tree branch t time sleep 0 0005 if branch gt 3 if 8 lt bran
  • 深度学习 (一)计算机如何处理和识别图片揭秘

    前言 先来一张美景图 欣赏一下大自然 顺便大家猜猜这是哪里 有时候真感叹大自然的雄伟壮阔 自然形成了无数的山和风景不需要任何点缀 有时候在想为什么亲近自然界我们会有亲近的感觉 可能那是我们的来源 我们人类在经过了无数代的繁衍生息 发展到了现
  • ARM 常用汇编语法

    ARM 常用汇编语法 如果使用过 STM32 的话就会知道 MDK 和 IAR 下的启动文件 startup stm32f10x hd s其中的汇编语法是有所不同的 将 MDK 下的汇编文件直接复制到 IAR 下去编译就会出错 因为 MDK
  • 递归实现栈的翻转

    递归实现栈的翻转 主要考察对于递归的理解 其实这个问题最简单的方法当然是设计一个空的栈来存储这些元素 一次达成逆序 但是题目要求使用递归的方式实现逆序 因此需要借助函数返回栈来充当这个这个栈的作用 实际上依然是借助了一个栈 但是这个栈是函数
  • 如何破解Win7之开机密码

    声明 本次实验是利用5次Shift来破解Win7密码 如果Win7 Win10已经修补此漏洞则不要继续尝试 1 VMware安装好1台Win7操作系 2 将设备开机后 连续摁键盘Shift会弹出如下提示框 则表示该计算机有漏洞 直接X掉就好
  • Android TTS语音播报实践

    在工作中遇到了语音播报的需求 在收到push后 用语音播报push携带的播报内容 类似于微信支付宝的收款信息一样 调研后主要的语音播报方案有一下几种 基于第三方的TTS SDK 如百度 思必驰 讯飞等 自研Native的TTS引擎 模型 基
  • JavaScript 使用原生js和jquery两种方法,实现tab栏切换

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 一 使用原生js实现tab栏切换 代码如下 具体注释已经在代码中给出
  • 下载好python后,怎么打开,python怎么进入编程界面

    大家好 给大家分享一下python下载安装好后怎么打开 很多人还不知道这一点 下面详细解释一下 现在让我们来看看 1 python第一次怎么打开 python第一次打开方法如下 win r快捷键打开运行窗口 在运行窗口输入栏中输入cmd后回
  • 调用百度云API实现语音识别

    一 在云平台创建语音技术应用 1 点击百度AI平台短语音识别https ai baidu com tech speech asr 登录百度云账号 2 新用户注册完百度智能云平台后 需要在 语音技术 概览 页面领取语音识别的免费额度 否则后续