基于Python与百度的AI接口的语音转文字的简单小程序。

导入 wave   #导入wave Python自带
 来自 pyaudio 导入 PyAudio  paInt16   #导入pyaudio模块内的类和常量安装方法pip install pyaudio
 from   aip import AipSpeech    #导入百度AI SDK安装方法pip install baidu-aip
 import time
 #paInt16 framerate
 = 16000   #全局变量采样率
 NUM_SAMPLES = 2000 #录音字节
 shengdao = 1    #采样声道zijie
 = 2
 TIME = 5 #录音时长
 “”“
 保存录音函数
 sava_wava_file
 ”“”
 def save_wave_file


(文件名数据):
    wf = wave.open(filename 'wb'#以二进制形式
    写入wf.setnchannels(shengdao)#声道
     wf.setsampwidth(zijie)#采样字节1或2
     wf.setframerate(framerate#采样频率8000或16000
     wf.writeframes(b“”。 join(data))#从文件末尾添加数据
     wf.close()#关闭文件,释放缓冲
 “”“
 录音函数
 my_record
 ”“”
 def my_record():




    pa = PyAudio()#实例化操作wave流的类
     stream = pa.open(format = paInt16 channels = 1 rate = framerate input = True,frames_per_buffer = NUM​​_SAMPLES)#打开音频流,格式,频道,采样率,输入,每次的大小
     my_buf = [] #空数据列表,存储流
 .count     = 0   #计数,退出录音循环
 打印“请说话:”    
    T1 = time.clock()
     count <TIME * 5#控制录音时间3 * 5 * 2000 = 30000
         string_audio_data = stream.read(NUM_SAMPLES)#一次性录音采样字节大小
         my_buf.append(string_audio_data)#每次将数据追加到存储数据的list中
        计数+ = 1
 打印'。'        
    T2 = time.clock()
    print'一共录音'  t2-t1 '秒'
    save_wave_file('d:/123/01.wav'  my_buf) 。#将数据保存到路径文件中
     stream.close() 关闭流
 my_record()  调用函数
 “” “你的APPID AK SK ”“”
 APP_ID = ''   #从百度获取属于你自己的
 API_KEY = '' #从百度获取属于你自己的
 SECRET_KEY = '' #从百度获取属于你自己的
 client = AipSpeech(APP_ID  API_KEY  SECRET_KEY)#获取链接....
 #pa = input(“输入语音文件:”)
 “”“
 读取音频函数
 getWAV
 ”“”
高清getWAV(路径):
     开放



(path 'rb'as fi:   #打开音频文件,并命名别名fi
 return fi.read()    #返回读取的音频数据
 “”“
 语音识别函数
 ”“”
 def AIaudio():        



    Json = client.asr(getWAV('D:/123/01.wav''pcm' 16000 ,无#请求链接,上传数据,获取返回数据。
     #print(Json)
 试试    
        s = Json [ “result” ]
         print(s)
         返回 s [ 0 ],
     除了KeyErrorprint'音频质量或者是其他错误....'return 0

 AIaudio()
 
 




希望大佬们多多指正.....

猜你喜欢

转载自blog.csdn.net/stronking/article/details/80946357