以下代码包括了ocr , asr短音频,asr长音频(多个语句)。
正常调用asr的话,效果不好,所以用asr长音频(多个语句切分调用),效果可观很多。

import aip
from aip import ocr
from aip import speech
import osimport wave                        #音频文件处理
import urllib.request, pycurl
#import base64
import json
# get access token by api key & secret key
import time
import re

ocr

# https://console.bce.baidu.com/ai 百度智能云 创建ocr的api
ocr_APP_ID = 'XXXXXXX'
ocr_API_KEY = 'XXXXXXXXXXXXXXXXXXXX'
ocr_SECRET_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'
ocr_client = ocr.AipOcr(APP_ID, API_KEY, SECRET_KEY)
def get_file_content(filePath):with open(filePath, 'rb') as fp:return fp.read()
def image2text(fileName):image = get_file_content(fileName)dic_result = ocr_client.basicGeneral(image)try:res = dic_result['words_result']except:res = []result = ''for m in res:result = result + str(m['words'])return result

asr(短视频)

# https://console.bce.baidu.com/ai 百度智能云 创建asr的api
asr_APP_ID = 'XXXXXXXXXXX'
asr_API_KEY = "XXXXXXXXXXXXXXXXXXXXXXXXXX"
asr_SECRET_KEY = "XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
asr_client = speech.AipSpeech(asr_APP_ID, asr_API_KEY, asr_SECRET_KEY)
# def wav2text(fileName):
#     fp = wave.open(fileName, 'rb')
#     nf = fp.getnframes()
#     # f_len = nf * 2
#     wav = fp.readframes(nf) #audio_data
#     dic_result = asr_client.asr(wav)
# #     try:
# #         res = dic_result['words_result']
# #     except:
# #         res = []
# #     result = ''
# #     for m in res:
# #         result = result + str(m['words'])
#     return dic_result
# 5.短时间举例子
# 语音参数 必须符合16k或8K采样率、16bit采样位数、单声道
# 语音格式 PCM、WAV、AMR
def baidu_Speech_To_Text(filePath):  # 百度语音识别asr_APP_ID = 'XXXXXXXX' asr_API_KEY = "XXXXXXXXXXXXXXXXXXXXXX"            #这两行是登录用的密码asr_SECRET_KEY = "XXXXXXXXXXXXXXXXXXXXXXXXXX" asr_client = speech.AipSpeech(asr_APP_ID, asr_API_KEY, asr_SECRET_KEY)# 读取文件with open(filePath, 'rb') as fp:audioPcm = fp.read()json = asr_client.asr(audioPcm, 'wav', 16000, {'lan': 'zh', })print(json)if 'success' in json['err_msg']:context = json['result'][0]print('成功,返回结果为:', context)else:context = '=====识别失败====='print('识别失败!')return context


asr(长视频(其实是多语句))

from pydub import AudioSegment
from pydub.utils import mediainfo
from aip import speech
def baidu_Speech_To_Text(filePath):  # 百度语音识别asr_APP_ID = 'XXXXXXXX' asr_API_KEY = "XXXXXXXXXXXXXXXXXXXXXX"            #这两行是登录用的密码asr_SECRET_KEY = "XXXXXXXXXXXXXXXXXXXXXXXXXX" asr_client = speech.AipSpeech(asr_APP_ID, asr_API_KEY, asr_SECRET_KEY)# 读取文件with open(filePath, 'rb') as fp:audioPcm = fp.read()json = asr_client.asr(audioPcm, 'wav', 16000, {'lan': 'zh', })print(json)if 'success' in json['err_msg']:context = json['result'][0]print('成功,返回结果为:', context)else:context = '=====识别失败====='print('识别失败!')return context
def sound_cut(file_name):if os.path.exists('识别结果.txt'):os.remove(r'识别结果.txt')song = mediainfo(file_name)song_length = str(int(float(song['duration'])))  # 读取文件时长song_size = str(round(float(int(song['size']) / 1024 / 1024), 2)) + 'M'  # 读取文件大小保留两位小数round(变量,2)song_filename = song['filename']  # 读取文件地址song_format_name = song['format_name']  # 读取文件格式print('\t长度', song_length, '\t文件大小', song_size, '\t文件路径', song_filename, '\t文件格式', song_format_name)cut_song_num = int(int(song_length) / 59) + 1  # 每段59s,计算切割段数print('切割次数', cut_song_num)sound = AudioSegment.from_mp3(file_name)# 单位:msstat_time = 0end_time = 59for i in range(cut_song_num):if i == cut_song_num - 1:  # 判断如果是最后一次截断cut_song = sound[stat_time * 1000:]  # 截取到最后的时间end_time = int(song_length)else:cut_song = sound[stat_time * 1000:end_time * 1000]save_name = r"temp-" + str(i + 1) + '.mp3'  # 设置文件保存名称cut_song.export(save_name, format="mp3")  # 进行切割save_name_pcm = r"temp-" + str(i + 1) + '.wav'  # 设置文件保存名称mp3_version = AudioSegment.from_mp3(save_name)  # 可以根据文件不太类型导入不同from方法mono = mp3_version.set_frame_rate(16000).set_channels(1)  # 设置声道和采样率mono.export(save_name_pcm, format='wav', codec='pcm_s16le')  # codec此参数本意是设定16bits pcm编码器, 但发现此参数可以省略context = baidu_Speech_To_Text(save_name_pcm)with open(r'识别结果.txt', 'a', encoding='utf-8') as f:f.write(context)os.remove(save_name)  # 删除mp3文件os.remove(save_name_pcm)  # 删除mp3文件print(save_name, 'end_time=', stat_time, 'end_time=', end_time)# 切割完加入下一段的参数stat_time += 59end_time += 59

参考: https://blog.csdn.net/qq_40584593/article/details/110311540

[深度学习] 百度api的asr语音识别(包括长音频,识别多个语句)相关推荐

  1. Keras深度学习实战(41)——语音识别

    Keras深度学习实战(41)--语音识别 0.前言 1. 模型与数据集分析 1.1 数据集分析 1.2 模型分析 2. 语音识别模型 2.1 数据加载与预处理 2.2 模型构建与训练 小结 系列链接 ...

  2. keras安装_代码详解:构建一个简单的Keras+深度学习REST API

    在本教程中,我们将介绍一个简单的方法来获取Keras模型并将其部署为REST API.本文所介绍的示例将作为你构建自己的深度学习API的模板/起点--你可以扩展代码,根据API端点的可伸缩性和稳定性对 ...

  3. 深度学习与人类语言处理-语音识别(part1)

    深度学习与人类语言处理课程笔记,上节回顾深度学习与人类语言处理-introduction.这节课将会简单介绍语音识别的最新研究方法,请看正文 语音识别该何去何从? 1969年,J.R. PIERCE: ...

  4. 深度学习实战(六):从零开始实现表情识别

    深度学习实战(六):从零开始实现表情识别 1. 项目简介 2. 数据获取 2.1 数据爬取 2.2 数据整理 2.3 数据清洗 2.4 提取嘴唇区域 3. 模型训练 3.1 数据接口准备 3.1.1 ...

  5. 将深度学习技术应用于基于情境感知的情绪识别

    目录 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 .QQ交流群:903290195 延世大学和洛桑联邦理工学院(EPFL)的研究团队最近开发了一种新的技术,可以通过分析图像中的人脸和上下 ...

  6. 深度学习之循环神经网络(8)长短时记忆网络(LSTM)

    深度学习之循环神经网络(8)长短时记忆网络(LSTM) 0. LSTM原理 1. 遗忘门 2. 输入门 3. 刷新Memory 4. 输出门 5. 小结  循环神经网络除了训练困难,还有一个更严重的问 ...

  7. 深度学习实战14(进阶版)-手写文字OCR识别,手写笔记也可以识别了

    大家好,我是微学AI,今天给大家带来手写OCR识别的项目.手写的文稿在日常生活中较为常见,比如笔记.会议记录,合同签名.手写书信等,手写体的文字到处都有,所以针对手写体识别也是有较大的需求.目前手写体 ...

  8. 深度学习 Day 15——利用卷神经网络实现好莱坞明星识别

    深度学习 Day 15--利用卷神经网络实现好莱坞明星识别 文章目录 深度学习 Day 15--利用卷神经网络实现好莱坞明星识别 一.前言 二.我的环境 三.前期工作 1.导入依赖项并设置GPU 2. ...

  9. 深度学习入门系列6项目实战:声纳回声识别

    大家好,我技术人Howzit,这是深度学习入门系列第六篇,欢迎大家一起交流! 深度学习入门系列1:多层感知器概述 深度学习入门系列2:用TensorFlow构建你的第一个神经网络 深度学习入门系列3: ...

最新文章

  1. vue 模板_简化版的 vue 页面模板语法
  2. 系统分析与设计 实验一用例模型
  3. pythonis啥意思-Python基础:is和==的区别
  4. HTTPS通信的C++实现
  5. 奉劝各位的atas几句话,别怪我没提醒
  6. 人工智能与机器学习有哪些不同
  7. RUNOOB python练习题2
  8. mysql录数据总是错误_MySQL数据库出错
  9. 序列化 与 反序列化 字符串 实例
  10. 使用Android OpenGL ES 2.0绘图之一:搭建一个OpenGL ES环境
  11. 参观云栖小镇体会_云栖小镇感受
  12. python-gui-pyqt5的使用方法-3--自定义信号的初识
  13. net framework安装有什么影响_踢脚暖比地暖安装简单,升温快,为什么没有普及?这2点影响很大...
  14. CCF推荐的计算机顶级期刊和论文参考
  15. 总结下几个有漏洞第三方插件
  16. control命令详解
  17. [Js_Testing]3分钟学会Mocha+Chai单元测试
  18. 序列特征分析 AND linux,4️⃣ 核酸序列特征分析(6):密码子使用模式的分析
  19. 网址怎样收藏到我计算机桌面,电脑应该如何收藏网址
  20. [置顶]开源:Taurus.MVC 框架

热门文章

  1. CryEngine 3引擎Forest Demo画质初窥
  2. windows核心宝藏
  3. 【牛客网笔试整理】美团点评 笔试整理
  4. Spring Cloud Discovery——Apache Zookeeper Discovery
  5. 打造完整网络直播方案
  6. 2016年度星级专利代理机构名单排名
  7. 付源泉老师 企业人才管理专家
  8. 汇编 windows 10 通过DOSBox使用Debug程序
  9. python函数基础
  10. Oracle OCA与OCP认证考试途径