制作一款读书机器人

2025-04-15 22:50:47

1、首先先百度“百度AI开放平台”并点击进入

制作一款读书机器人

2、按照百度AI开放平台注册的方法注册一个百度AI账号并进入控制台

3、我们需要用到文字识别还有语音合成的接口,但是不管是语音合成还是文字识别想要调用其API接口就必须获取Access Token,获取Access Token的方式就是需要在百度AI 云平台中创建应用,创建应用的过程中要给所创建的应用取名,并且选择该应用需要调用的功能是什么,应用创建完成后,系统会自动给出一个AppID和一个API Key以及一个Secret Key

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

5、接着安装Pip3,继续在命令行中输入:sudo apt install python3-pip,同样的利用键盘输入Y并按回车键确认安装,等待安装完成。安装完Pip3后继续在命令行中输入sudo pip3 install baidu-aip,然后等待安装完成,安装过程需要保持网络连接通畅,并且中途不能断电重启,安装完成后就可以利用Python来调用百度AI的API接口了,并且所下载的百度API库不仅仅可以调用文字识别和语音合成还可以调用百度AI云中其他功能的API接口,可谓是一劳永逸。

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 = tempsize = 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]+=1for key in character.keys():#print key, character[key]if key in exclude:continuefidw.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')然后按照语音要求就可以阅读书籍了

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢