AI语音自动化脚本开发

本篇文章主要介绍如何使用python实现文字转换成语音文件,电脑执行语音文件,使用音响进行播放,然后对智慧屏执行的语料进行测试,在对语音执行效果进行断言,最后输出测试结果,不一定是智慧屏,也可以是其它支持语音的设备都能测试,比如汽车智能系统、各种支持语音的智能设备

一、安装python

1.首先你本机需要安装python,python可以到官网下载安装即可,下载地址 https://www.python.org/downloads/windows/ ,本次python的版本是3.7.6

image.png

2.本次代码是在PyCharm工具上进行编写,可以自己进官网下载安装,使用pip 命令安装各种第三方关联插件,pip install 包名,提示了Successfully 就代表安装成功,也可以进入File》Settings》Project》Python Interpreter,查看哪些插件已经安装成功

image.png
image.png
image.png

二、生成语音文件

1.语音文件是执行语音测试所用到的文件,调用pyttsx3生成,语音文件目录在audio_output,只需要在corpus文件维护就行

image.png
image.png

2.只需要右键执行Generate_corpus文件,即可生成

image.png
image.png

3.如果该设备在audio_output下未创建过文件夹,则需要手动创建文件夹,命名成对应的设备名称,并且把生成的语音文件copy到该目录下(已经存在该设备命名的文件夹,则只用copy新生成的语音文件到该目录即可)

68e74e49256971a501f20a550d7db36.png

三、开发自动化脚本

1. 在general文件下的Run_api文件,先定义全局变量,把域名、登录用户、密码、家庭名称等变量定义到类下面,这样可以直接使用类名.变量名进行调用,然后首先开发一个登录方法,用来获取accessToken,用来后面的接口进行鉴权

image.png
image.png

2.开发一个家庭查询方法,用来获取家庭id

image.png

3.开发一个设备查询方法,用来获取设备id,设备查询接口需要传入一个设备名称参数,需要在执行语料Hood.xlsx中进行申明,需要确保该设备名称就是app家庭定义的设备名称

1710209801987.png
image.png

4.开发一个前置操作判断方法,用来测试某条语料前执行一些操作,比如测试空调打开功能,首先就执行关闭空调动作,list用来申明要执行的语料,如果该语料前置条件已经开发好,则把该语料写到对应的list就可以,不用每条语料编写一个list,设备查询接口需要传入两个参数,一个是设备名称、一个是执行语料,需要在执行语料Hood.xlsx中进行申明

image.png

5.开发一个设备状态查询接口,用来执行完语料,在去检查对应设备的状态,比如开关、温度、风速等,设备查询接口需要传入两个参数,一个是设备名称、一个是执行语料,通过设备id去查询该设备的执行状态,然后具体的设备下需要维护不同语料断言的jsonpath,最后为断言结果赋值,用来输出测试结果,语料的开发规则和前置操作一样,当该设备下的语料判断规则一样,则写在同一个list即可,不同则需要另外创建一个新的list

image.png
image.png

四、运行逻辑控制讲解

1.运行文件为auto_test_main,该文件可以读取到执行语料、关联的设备文件名,然后传递给run方法

image.png

2.run方法有2个重要参数:test_sound_list、test_device_name,其中test_sound_list用来控制整个大循环,每次大循环一次,就会执行下一条语料,并且初始化每条语料执行成功次数,每次一条语料执行完设置的次数(Run_api文件设置number_of_cycles变量),才会执行下一条语料,run方法里面有个小循环用来调用audio_test_main方法,最后所有语料执行完毕,就会生成excel文件
    def run(self, test_sound_list=None, audio_dir=None, wakeup_mode=0,test_device_name=""):
        i = 0
        for sound_name in test_sound_list:
            print("---------------外部循环--------------------------------------------------")
            print("时间: " + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
            device_name = test_device_name[i]
            print("设备名称 device_name = " + device_name)
            # print(sound_name)
            i = i+1
            print(device_name + "设备 执行第" + str(i) + "条语料测试,语料:" + sound_name)
            # 控制总共的循环次数
            ScreenTester.number_of_executions = 0
            ScreenTester.number_key = 0   #初始化统计结果
            ScreenTester.number_key1 = 0  #初始化统计结果
            row =i+1
            for k in range(Run_api.number_of_cycles):
                k = k+1
                if k == 1:
                    start_time = time.time()
                    local_time = time.localtime(start_time)
                    log_start_time = time.strftime('%Y-%m-%d %H:%M:%S', local_time)
                    Logger.add_data(self, device_name, sound_name, log_start_time)
                    print("创建执行语料的测试项")
                column = k+5
                global number_of_executions
                ScreenTester.number_of_executions = ScreenTester.number_of_executions + 1
                print("--------------内部循环---------------------------------------------------")
                print("时间: " + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
                print("执行内部循环,已经执行" + str(k) + "次循环")
                self.audio_test_main(sound_name=sound_name, audio_dir=audio_dir, wakeup_mode=wakeup_mode,
                                     device_name=device_name,row=row,column=column)
            print(device_name + "设备已经完成语料: " + sound_name+"  "+str(Run_api.number_of_cycles)+"次循环测试,开始执行下一条语料测试")

        Logger.save(self,device_name)
        print("-------------------所有测试语料已经执行完毕,程序已经停止-------------------------------")
        wakeup_mode = 0
        self.play_me("所有测试语料已经执行完毕.wav", audio_dir, wakeup_mode)
        self.play_me("程序已经停止.wav", audio_dir, wakeup_mode)

3. audio_test_main方法用来执行接登录脚本获取accessToken、设备id获取、设备前置执行动作,以及执行完语料播放之后进行设备状态查询,然后进行断言,当执行成功就会在excel标记为√,执行失败就标记为×,当该条语料的执行次数和设置的执行次数一致,就计算出通过率,并且写入到excel
    def audio_test_main(self, sound_name='我离家了' , audio_dir=None, wakeup_mode=0,device_name="",row='',column=''):
            voice = sound_name + '.wav'
            #执行语音测试
            global  number_of_executions,number_key,number_key1
            # print("大循环次数 ="+str(ScreenTester.number_of_executions))
            Run_api.login(self)
            Run_api.home_list(self)
            Run_api.device_list(self, device_name)
            Run_api.device_pro_action(self, device_name,sound_name)
            self.play_me(voice, audio_dir, wakeup_mode,device_name)
            time.sleep(3)
            Expected_results = Run_api.device_status(self, device_name,sound_name)
            # print(sound_name)
            if Expected_results == "执行成功":
                global number_key
                ScreenTester.number_key = ScreenTester.number_key +1
                # print("row={},column={}".format(row,column))
                # print(type(row))
                Logger.add_cell(self,row,column,"√")
                print(sound_name+" 语料执行成功次数 number_key = "+str(ScreenTester.number_key))
            else :
                print("断言失败")
                Logger.add_cell(self,row,column,"×")
            if ScreenTester.number_of_executions == Run_api.number_of_cycles:
                start_time = time.time()
                local_time = time.localtime(start_time)
                log_start_time = time.strftime('%Y-%m-%d %H:%M:%S', local_time)
                percentage = ScreenTester.number_key/ScreenTester.number_of_executions  #输出百分比
                print(sound_name+" 语料测试通过率 ="+"{:.2%}".format(percentage))
                Logger.add_cell(self,row, 4, Run_api.number_of_cycles)
                Logger.add_cell(self,row, 5, "{:.2%}".format(percentage))

五、执行自动化脚本

1.首先在主目录下的Hood.xlsx文件中填写好已经开发好的语料,如下图所示

image.png

2.主目录auto_test_main下,点击右键,选择Run即可执行

image.png

3.执行完毕,测试结果会输出到result目录

image.png
image.png


如果文章对你有帮助,欢迎关注本人公众号,公众号与本平台文章同步,方便大家查阅,本人会持续推出与测试有关的文章,与大家分享测试技术,每一篇原创文章都是用心编写,杜绝抄袭复制


QQ技术交流群:加群请输入验证信息 51cto
              在这里插入图片描述


微信二维码关注公众号:


关注之后,回复AI,即可获取本次编写的代码框架下载地址:

1710231202997.png

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
人工智能技术有哪些_人工智能技术的原理 什么是人工智能人工智能(ArTIficialIntelligence),英文缩写为AI。它是研究 、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术 科学。 人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人 类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识 别、自然语言处理和专家系统等。人工智能从诞生以来,理论和技术日益成熟,应用领 域也不断扩大,可以设想,未来人工智能带来的科技产品,将会是人类智慧的容器。人 工智能可以对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那 样思考、也可能超过人的智能。 人工智能的特点1.人工智能纯系无意识的机械的物理的过程,人类智能主要是生理和心 理的过程。 2.人工智能没有社会性。 3.人工智能没有人类的意识所特有的能动的创造能力。 4.两者总是人脑的思维在前,电脑的功能在后。 人工智能技术有哪些?1、自然语言生成:利用计算机数据生成文本。目前应用于客户服 务、报告生成以及总结商业智能洞察力。代表*厂商包括:AtTIvio、CambridgeSemanTI cs、DigitalReason、Lucidworks、NarraTIveScience和SAS。 2、语音识别:将人类语音转录和转换成对计算机应用软件来说有用的格式。目前应用于 交互式语音应答系统和移动应用领域。代表*厂商包括:NICE、NuanceCommunications、 OpenText和VerintSystems。 3、虚拟代理:弗雷斯特公司声称,虚拟代理可谓是媒体界目前竞相报道的对象。从简单 的聊天机器人,到可以与人类进行交际的高级系统,不一而足。目前应用于客户服务和 支持以及充当智能家居管理器。代表*厂商包括:亚马逊、苹果、ArtificialSolutions 、AssistAI、CreativeVirtual、谷歌、IBM、IPsoft、微软和Satisfi。 4、机器学习平台:不仅提供了设计和训练模型,并将模型部署到应用软件、流程及其他 机器的计算能力,还提供了算法、应用编程接口(API)、开发工具包和训练工具包。目 前应用于一系列广泛的企业应用领域,主要涉及预测或分类。代表*厂商包括:亚马逊、 FractalAnalytics、谷歌、H2O.ai、微软、SAS和Skytree。 5、针对人工智能优化的硬件:这是专门设计的图形处理单元(GPU)和设备,其架构旨 在高效地运行面向人工智能的计算任务。目前主要在深度学习应用领域发挥作用。代表 *厂商包括:Alluviate、克雷、谷歌、IBM、英特尔和英伟达。 6、深度学习平台:一种特殊类型的机器学习,包括拥有多个抽象层的人工神经网络。目 前主要应用于由很庞大的数据集支持的模式识别和分类应用领域。代表*厂商包括:Dee pInstinct、ErsatzLabs、FluidAI、MathWorks、Peltarion、SaffronTechnology和Sen tientTechnologies。 7、生物特征识别技术:能够支持人类与机器之间更自然的交互,包括但不限于图像和触 摸识别、语音和身体语言。目前主要应用于市场研究。代表*厂商包括:3VR、Affectiv a、Agnitio、FaceFirst、Sensory、Synqera和Tahzoo。 8、机器人流程自动化:使用脚本及其他方法,实现人类操作自动化,从而支持高效的业 务流程。目前应用于人类执行任务或流程成本太高或效率太低的地方。代表*厂商包括: AdvancedSystemsConcepts、AutomationAnywhere、BluePrism、UiPath和WorkFusion。 9、文本分析和NLP:自然语言处理(NLP)使用和支持文本分析,为此它借助统计方法和 机器学习方法,为理解句子结构及意义、情感和意图提供方便。目前应用于欺诈检测和 安全、一系列广泛的自动化助理以及挖掘非结构化数据等领域。代表*厂商包括:Basis Technology、Coveo、ExpertSystem、Indico、Knime、Lexalytics、Linguamatics、Mi ndbreeze、Sinequa、Stratifyd和Synapsify。 10,决策管理:引擎将规则和逻辑嵌入到人工智能系统,并用于初始的设置/训练和日常 的维护和调优。这是一项成熟的技术,应用于一系列广泛的企业应用领域,协助或执行 自动决策。代表*厂商包括:AdvancedSystemsConcepts、Informatica、Maana、Pegasy stems和UiPat。 人工智能的原理人工智能是实现具
AI自动化游戏脚本代码需要根据不同游戏的API接口和自动化需求进行编写,下面是一个示例代码,仅供参考: ```python import requests import time # 定义游戏API接口 API_URL = "http://api.game.com" LOGIN_URL = API_URL + "/login" TASK_URL = API_URL + "/task" UPGRADE_URL = API_URL + "/upgrade" BAG_URL = API_URL + "/bag" # 定义游戏账号和密码 USERNAME = "myusername" PASSWORD = "mypassword" # 登录游戏账号 def login(): data = {"username": USERNAME, "password": PASSWORD} response = requests.post(LOGIN_URL, data=data) if response.status_code == 200 and response.json()['code'] == 0: print("登录成功") return True else: print("登录失败") return False # 完成任务 def complete_task(task_id): data = {"task_id": task_id} response = requests.post(TASK_URL, data=data) if response.status_code == 200 and response.json()['code'] == 0: print("任务完成") return True else: print("任务失败") return False # 升级 def upgrade(): response = requests.post(UPGRADE_URL) if response.status_code == 200 and response.json()['code'] == 0: print("升级成功") return True else: print("升级失败") return False # 收集物品 def collect_item(item_id): data = {"item_id": item_id} response = requests.post(BAG_URL, data=data) if response.status_code == 200 and response.json()['code'] == 0: print("物品收集成功") return True else: print("物品收集失败") return False # 主函数 if __name__ == "__main__": if login(): while True: if complete_task(1): time.sleep(2) if upgrade(): time.sleep(3) if collect_item(2): time.sleep(1) ``` 这是一个简单的示例代码,实现了登录游戏账号、完成任务、升级和收集物品等功能,并使用了时间延迟控制脚本执行频率。需要注意的是,实际编写自动化游戏脚本时需要结合具体游戏API接口进行编写,同时也需要遵守游戏规则和道德准则。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值