运用百度语音识别来读文字

运用百度语音识别来读取你的本地内容
1.把本地文字传递给百度语音接口,返回语音mp3
2.将mp3保存到本地
3.用pyglet播放此语音
#-*- coding: UTF-8 -*-
import pyglet
import hashlib
import time
import urllib.request
from urllib.request import quote
import os.path

tok='24.6a0ecfcf511a91e5fb6c9f9ef980b0d6.2592000.1462188570.282335-7953574'#你的token,一个月一授权
def downmp3(txt):
    h5 = hashlib.md5()   
    h5.update(txt.encode('utf-8'))   
    m5=h5.hexdigest()
    
    if os.path.exists(m5+'.mp3'):
        return m5+'.mp3'
    else:
        url='http://tsn.baidu.com/text2audio?tex='+quote(txt)+'&lan=zh&cuid=1qazxsw23edcvfr4&ctp=1&tok='+tok
        
        request = urllib.request.Request(url)  
        response = urllib.request.urlopen(request)
        savePath=m5+'.mp3'#此文件保存最新下载的
        f = open(savePath,'wb')
        f.write(response.read())
        f.close()
        return savePath 

def exit_callback(dt):
    pyglet.app.exit()

def answer(atxt):
    
    mp3file=downmp3(atxt)
    time.sleep(5)
music = pyglet.media.load(mp3file)
        #music = pyglet.resource.media(mp3file)
    #music = pyglet.resource.media(mp3file)
    music.play()
    pyglet.clock.schedule_once(exit_callback, music.duration)   
    pyglet.app.run()
    
 
answer('你好')

answer('你好啊')

answer('你好吗')



pyglet需要avbin.dll,附件已经包含
经测试有一个问题,文件还没完成保存,读取的时候,就会报错

猜你喜欢

转载自mushme.iteye.com/blog/2288512