百度网盘里存了很多课程,里面有相当一部分的文件是音频,整个听完要很久的时间,所以萌生了把网课、音频文件转成文字的想法,毕竟看文字比听音频快,另外就是文本比音视频所占的存储空间较小,提炼出来文字可以当知识点存储,也不至于听完音频删了可惜,不删又白白占用空间。
目前参考的是《[使用百度云API进行语音转文字(基于python的wav文件转换)》(https://www.cnblogs.com/nightcatcher/p/11195068.html),最终成功了,但是缺点是只能支持60s以内的wav文件,也就是说音频时间超过60s,会转存失败;音频格式不是wav,也无法成功。
登录百度AI http://ai.baidu.com/,控制台->语音技术,创建应用
代码部分
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from aip import AipSpeech
import csv
#从百度AI开放平台创建应用处获取
APP_ID = 'xxxxx'
API_KEY = 'xxxxx'
SECRET_KEY = 'xxxxx'
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
#创建并写入csv文件
f = open('C:/Users/Queenie/Desktop/录音.csv', 'w')
writer = csv.writer(f) # 参见csv文件读写(函数reader、writer;类DictReader、DictWriter)
# 读取文件
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
# 识别本地文件
def get_text():
#这里我的音频文件 advice_58.wav 和代码文件在同一路径下,如果路径不同,需要添加音频文件所在的路径
result = client.asr(get_file_content('advice_58.wav'), 'wav', 16000, {'dev_pid': 1537,})
text = result['result'][0]
writer.writerow([text])
if __name__ == '__main__':
print("开始读取")
get_text()
print("读取完毕")
网友评论