失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python百度ai语音识别-音频分割-ffmpeg mp3转pcm - 生成txt文件

python百度ai语音识别-音频分割-ffmpeg mp3转pcm - 生成txt文件

时间:2019-06-20 18:55:07

相关推荐

python百度ai语音识别-音频分割-ffmpeg mp3转pcm - 生成txt文件

安装百度语音识别sdk

安装百度-aip 库

pip install baidu-aip

使用ffmpeg命令

from pydub import AudioSegmentfrom pydub.utils import mediainfoimport osfrom aip import AipSpeechos.remove(r'C:\Users\Administrator\Desktop\save\识别结果.txt')input_filename = input(r'请将文件放入C:\Users\Administrator\Desktop\save\ 文件夹路径下!\n 请输入文件名*.mp3:')file_name = r'C:\Users\Administrator\Desktop\save/'+input_filenamedef sound_cut(file_name,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:] #截取到最后的时间else:cut_song = sound[stat_time*1000:end_time*1000]save_name = r"c:/Users/Administrator/Desktop/save/temp-"+ str(i+1) +'.mp3' #设置文件保存名称save_name_pcm = r"c:/Users/Administrator/Desktop/save/temp-"+ str(i+1) +'.pcm' #设置文件保存名称cut_song.export(save_name, format="mp3",tags={'artist': '李斯特', 'album': '最爱'}) #进行切割order_ffmpeg = 'ffmpeg -i {} -f s16le -ar 16000 -ac 1 -acodec pcm_s16le {}'.format(save_name,save_name_pcm)os.system(order_ffmpeg) #使用ffmpeg命令转化mp3为pcmcontext = baidu_Speech_To_Text(save_name_pcm)write_text(context)os.remove(save_name) #删除mp3文件os.remove(save_name_pcm)#切割完加入下一段的参数stat_time +=59end_time +=59print(save_name,'end_time=',stat_time,'end_time=',end_time)def get_sond_info(file_name):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'] #读取文件格式try:song_name = song['TAG']['title'] #读取标题song_artist = song['TAG']['artist'] #读取作家except:song_name = '暂无' song_artist = '暂无' print('歌名:',song_name,'\n作家',song_artist,'\n歌曲长度',song_length,'\n文件大小',song_size,'\n文件路径',song_filename,'\n文件格式',song_format_name)cut_song_num = int(int(song_length) / 59) + 1 #每段59s,计算切割段数print('切割次数',cut_song_num)return cut_song_numdef get_file_content(filePath):with open(filePath, 'rb') as fp:return fp.read()def baidu_Speech_To_Text(filePath): #百度语音识别path = r'C:\Users\Administrator\Desktop\save'os.chdir(path)APP_ID = '你的百度id'API_KEY = '你的key'SECRET_KEY = '你的secret'aipSpeech = AipSpeech(APP_ID, API_KEY, SECRET_KEY) # 初始化AipSpeech对象# 读取文件json = aipSpeech.asr(get_file_content(filePath), 'pcm', 16000, {'dev_pid': 1537,})print(json['err_msg'])if 'success' in json['err_msg']:context = json['result'][0]print('成功,返回结果为:',context)else:print('识别失败!')return contextdef write_text(text):file1 = open(r'C:\Users\Administrator\Desktop\save\识别结果.txt','a',encoding='utf-8')file1.write(text)file1.close()cut_song_num = get_sond_info(file_name)sound_cut(file_name,cut_song_num)

最后结果:识别mp3文件,输出 识别结果.txt

如果觉得《python百度ai语音识别-音频分割-ffmpeg mp3转pcm - 生成txt文件》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。