多语言展示
当前在线:218今日阅读:26今日分享:39

制作一款读书机器人

把书放在摄像头下面就能将内容读出来,是不是很神奇,下边就让我们一起来制作一下吧。
工具/原料
1

百度AI云平台

2

树莓派

方法/步骤
4

做完前边的准备之后,将准备好的树莓派将其系统安装好,安装好后需要安装Python3.5所以要在其命令行窗口下输入sudo apt-get install python3.5;输入后,系统会在安装资源准备好后提问是否继续安装:利用键盘输入Y并按回车键确认,然后等待安装完成。安装完成后需要继续安装Python3的开发资源,继续输入命令:sudo apt-get install python3.5-dev,并且系统会继续提问是否继续安装。利用键盘输入Y并按回车键确认,然后等待安装完成,并且在等待安装完成的过程中需要保持网络连接通畅,并且中途不能断电重启。

6

利用Python截取文字图像:截取图像首先需要一款可以获取图像的摄像头,本设计选取的是一种USB的摄像头,然后利用Python的picamera设置好截图后图像的大小以及清晰度等参数,然后调用其接口对文字图像进行截图,并将截好的图片保存为jpg的格式。具体操作见网址http://blog.eetop.cn/blog-1143350-4064032.html要想利用Python在树莓派上实现播放MP3的音频文件首先需要安装一个pygame模块,由于事先在树莓派中已经提前安好了pip3则只需要在树莓派的命令行窗口中输入sudo pip3 install pygame然后等待安装成功后即可使用该模块,然后通过程序导入该模块、进行模块的初始化、装载MP3文件,然后启动该模块就可以成功的播放出所装载的MP3文件了

7

打开Python输入代码from aip import AipSpeechfrom aip import AipOcrimport sysimport os  import time #在这三个地方填入参数api_id = '14***597'api_key = '4GR**********VC5MqkIG'secret_key = 'k61d********HOCn6Ymvodsj2IV'#你自己文字识别的id和秘钥 APP_ID = '14****36'API_KEY = 'BY************B9VsQz'SECRET_KEY = 'XuF3U************YdaF3vK7PbPwBlW1'#你自己语音合成的id和秘钥 aipOcr = AipOcr(api_id, api_key, secret_key)lalala = AipSpeech(APP_ID, API_KEY, SECRET_KEY)#到这里都是固定用法 #汉字转语音fidw = open('开头语.txt',encoding='gbk') #lines = []#with open('shuju2.txt', 'r') as f_in:#    for line in f_in:#        line = line[0:-2]+' '+','#        lines.append(line)#with open('shuju2.txt', 'w') as f_out:#    f_out.writelines(lines)#hanzi  = lalala.synthesis(fidw, 'zh', 1, {      'vol': 5,'per':0,'spd':5})  #识别正确返回语音二进制错误则返回dict 参照下面错误码if not isinstance(hanzi, dict):    with open('小度.mp3', 'wb') as ba:        ba.write(hanzi) fidw.close() #播放语音os.popen('小度.mp3') #进入检测循环while(1):    biaozhiwei= open('标志位.txt','r')    biaozhi=biaozhiwei.read()if biaozhi == '0':        biaozhiwei.close()        biaozhiwei= open('标志位.txt','w')zhiling = '#'        biaozhiwei.write(zhiling)        biaozhiwei.close()        os.popen('密码正确.mp3')        time.sleep(4)        while(1):            biaozhiwei= open('标志位.txt','r')            biaozhi=biaozhiwei.read()if biaozhi == '#':                biaozhiwei.close()                biaozhiwei= open('标志位.txt','w')                zhiling = '?'                biaozhiwei.write(zhiling)                biaozhiwei.close()                os.popen('选择方式.mp3') elif biaozhi == '*':                biaozhiwei.close()                biaozhiwei= open('标志位.txt','w')                zhiling = '?'                biaozhiwei.write(zhiling)                biaozhiwei.close()                os.popen('选择方式.mp3') elif biaozhi == '1':                biaozhiwei.close()                biaozhiwei= open('标志位.txt','w')                zhiling = '?'                biaozhiwei.write(zhiling)                biaozhiwei.close()                 #汉字转语音                kaishishibie = open('开始识别.txt',encoding='gbk')                 hanzi1  = lalala.synthesis(kaishishibie, 'zh', 1, {                      'vol': 5,'per':0,'spd':4                })                  #识别正确返回语音二进制错误则返回dict 参照下面错误码                if not isinstance(hanzi1, dict):                    with open('小度2.mp3', 'wb') as ba:                        ba.write(hanzi1)                 kaishishibie.close()                #播放语音                os.popen('小度2.mp3')                time.sleep(14)                 # 读取图片filePath = 'a.jpg'                def get_file_content(filePath):                  with open(filePath, 'rb') as fp:                    return fp.read()                 # 定义参数变量options = {                 'detect_direction': 'true',                 'language_type': 'CHN_ENG',                }                 # 调用通用文字识别接口                result = aipOcr.basicAccurate(get_file_content(filePath),options)                print(result)                 shuju=str(result)                 f=open('shuju.txt','w')                f.write(shuju)                f.close()                 #提取汉字                fid = open('shuju.txt')                fidw = open('shuju2.txt','w')                lines = fid.readlines()character = {}                exclude = ['m','g','”','“',',',':',';',')','(', '《','》','~','【','】','、','。','①','③','②','④','⑤','⑥','⑦','⑧','⑨']for line in lines:                    line = line.strip()temp = ''                    for i in range(len(line)):                        if ord(line[i])> 127:temp=temp+line[i]line = temp                    size = len(line)/3                    #print line,len(line)                     size= int(size)                    for i in range(size):                        c = line[i*3:i*3+3]                        #print c,len(c)                        if c not in character.keys():character[c]=1else:character[c]+=1                for key in character.keys():                    #print key, character[key]if key in exclude:continue                    fidw.writelines(key)                fidw.close()                fid.close()                  #汉字转语音                fidw = open('shuju2.txt',encoding='utf-8')                hanzi  = lalala.synthesis(fidw, 'zh', 1, {                      'vol': 1,'per':1,'spd':3                })                  #识别正确返回语音二进制错误则返回dict 参照下面错误码                if not isinstance(hanzi, dict):                    with open('auido.mp3', 'wb') as ba:                        ba.write(hanzi)                 fidw.close()                #播放语音                os.popen('auido.mp3')elif biaozhi == '2':                biaozhiwei.close()                biaozhiwei= open('标志位.txt','w')                zhiling = '?'                biaozhiwei.write(zhiling)                biaozhiwei.close()                os.popen('段奥娟 - 陪我长大.mp3')elif biaozhi == '3':                biaozhiwei.close()                biaozhiwei= open('标志位.txt','w')                zhiling = '?'                biaozhiwei.write(zhiling)                biaozhiwei.close()                os.popen('段奥娟 - 陪我长大.mp3') elif biaozhi == '9':                biaozhiwei.close()                biaozhiwei= open('标志位.txt','w')                zhiling = '?'                biaozhiwei.write(zhiling)                biaozhiwei.close()                os.popen('密码错误.mp3')然后按照语音要求就可以阅读书籍了

推荐信息