-
尊敬的客户:您好!由于《人工智能入门级开发者认证》中涉及的产品HiLens Studio将启动下线,华为云开发者学堂将于2022年12月30日晚18:00对该认证进行下线优化,重新上线时间待定,届时请您关注华为云开发者学堂资讯专栏-业务动态通知。为此,我们将采取以下措施:1.对于已购买该开发者认证并通过考试领取证书的客户,原证书在证书有效期内仍有效,并与课程优化后的证书拥有同等效力;2.对于已购买该开发者认证但未通过考试且仍有考试机会的客户,可在重新上线后进行新课程学习、实验,参加考试并领取证书(如果近期有认证需求,需在12月30日晚18:00前完成考试);3.对于已购买该开发者认证但未完成实验操作的客户,请您关注华为云开发者学堂资讯专栏-业务动态的上线通知,待实验优化重新上线后再前往沙箱开展实验。如您有任何问题,可随时通过工单或者服务热线(+86-4000-955-988 )与我们联系。感谢您对华为云开发者认证的支持!发布日期:2022年12月26日
-
1. 前言随着物联网的发展,语音识别技术受到越来越多的关注,语音识别技术正积极推动信息通信领域的革命,语音拨号,语音邮件,语音输入乃至语音操控等以语音识别为基础的人机交互日益普及.尽管生物识别方式不断增多,语音识别方式仍是主流方式.与其他生物识别技术相比,语音识别技术不仅具有非接触,非侵入性,使用方便,不会遗失和忘记,不需记忆等特点。本篇文章就采用华为云提供的在线语音识别服务给浏览器设计一个语音自动搜索的功能,编程语言采用C++,软件框架采用QT设计,浏览器内核采用QWebEngineView,在QT5.7以后,QT里就不支持webkit了,目前自带的浏览器内核是QWebEngineView,只能使用MSVC编译编译,mingw要使用浏览器可以单独下载webkit的库,或者使用COM组件调用IE浏览器,当前文章里使用的浏览器是QWebEngineView,编译器采用VS2017,32bit。语音采集功能使用QT的QAudioInput类来实现,采集声卡的PCM数据,保存起来,通过华为云的语音识别HTTP接口完成文字识别,得到文字后再通过浏览器进行搜索文字相关内容。实现效果如下: 点击界面上的 ”开始语音采集“按钮,就可以说话,说完点击停止采集,然后调用华为云的语音识别接口进行语音识别,在下面的显示框上显示识别到的文字,然后再完成浏览器自动搜索。 2. 创建语音服务器2.1 使用语音服务登录华为云官网: cid:link_4选择产品-人工智能-语音交互服务-一句话识别。 短语音识别地址: cid:link_2短语音识别是将口述音频转换为文本,通过API调用识别不超过一分钟的不同音频源发来的音频流或音频文件。适用于语音搜索、人机交互等语音交互识别场景。 支持免费试用。 免费试用每日500次。 2.2 HTTP接口使用介绍文档地址: cid:link_1 在线调试接口地址: cid:link_0几个重要的参数:本地音频采集的频率、通道数都得与参数匹配。2.3 接口地址总结请求地址: "https://{endpoint}/v1/{project_id}/asr/short-audio" 请求数据: { "config": { "audio_format": "ulaw8k8bit", "property": "chinese_8k_common", "add_punc": "yes", "digit_norm": "yes", "need_word_info": "yes" }, "data": "/+MgxAAUeHpMAUkQAANhuRAC..." } 请求头里要带: X-Auth-Token 参数请求数据里的参数在前面截图里介绍了,data就是音频文件的base64编码数据。请求地址里的endpoint字段、project_id字段、还有X-Auth-Token字段只要是访问华为云的任何API接口都需要填,获取方法看这里: cid:link_3 翻到2.3小节。识别成功返回的数据:{ "trace_id": "567e8537-a89c-13c3-a882-826321939651", "result": { "text": "欢迎使用语音云服务。", "score": 0.9, "word_info": [ { "start_time": 150, "end_time": 570, "word": "欢迎" }, { "start_time": 570, "end_time": 990, "word": "使用" }, { "start_time": 990, "end_time": 1380, "word": "语音" }, { "start_time": 1380, "end_time": 1590, "word": "云" }, { "start_time": 1590, "end_time": 2070, "word": "服务" } ] } }其中的text字段就是识别的文本数据。3. 项目代码示例下面列出核心的代码,主要是就是字符串拼接格式,拼接完发送http请求即可。3.1 语音转文字请求代码//语音转文本 void Widget::audio_to_text(QByteArray data) { function_select=0; QString requestUrl; QNetworkRequest request; //存放文件的BASE64编码 QString base64_Data; //设置请求地址 QUrl url; //一句话识别的请求地址 requestUrl = QString("https://sis-ext.%1.myhuaweicloud.com/v1/%2/asr/short-audio") .arg(SERVER_ID) .arg(PROJECT_ID); qDebug()<<"requestUrl:"<<requestUrl; //设置数据提交格式 request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json")); //将图片进行Base64编码 base64_Data = QString(data.toBase64()); //设置token request.setRawHeader("X-Auth-Token",Token); //构造请求 url.setUrl(requestUrl); request.setUrl(url); //设置采样率 QString post_param=QString ("{" "\"config\": {" "\"audio_format\": \"df10637-e376-4619-a62c-f8a259673db2"," "\"property\": \"#df10637-e376-4619-a62c-f8a259673db2"," "\"add_punc\": \"yes\"," "\"digit_norm\": \"yes\"," "\"need_word_info\": \"yes\"" "}," "\"data\": \"\"" "}").arg("pcm16k16bit").arg("chinese_16k_common").arg(base64_Data); /* chinese_16k_common 支持采样率为16k的中文普通话语音识别。 pcm16k16bit 16k16bit单通道录音数据。 */ //发送请求 manager->post(request, post_param.toUtf8()); }3.2 更新token代码/* 功能: 获取token */ void Widget::GetToken() { //表示获取token function_select=3; QString requestUrl; QNetworkRequest request; //设置请求地址 QUrl url; //获取token请求地址 requestUrl = QString("https://iam.%1.myhuaweicloud.com/v3/auth/tokens") .arg(SERVER_ID); //自己创建的TCP服务器,测试用 //requestUrl="http://10.0.0.6:8080"; //设置数据提交格式 request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json;charset=UTF-8")); //构造请求 url.setUrl(requestUrl); request.setUrl(url); QString text =QString("{\"auth\":{\"identity\":{\"methods\":[\"password\"],\"password\":" "{\"user\":{\"domain\": {" "\"name\":\"df10637-e376-4619-a62c-f8a259673db2"},\"name\": \"#df10637-e376-4619-a62c-f8a259673db2",\"password\": \"\"}}}," "\"scope\":{\"project\":{\"name\":\"Cdf10637-e376-4619-a62c-f8a259673db2"}}}}") .arg(MAIN_USER) .arg(IAM_USER) .arg(IAM_PASSWORD) .arg(SERVER_ID); //发送请求 manager->post(request, text.toUtf8()); }3.3 华为云返回的结果处理//解析反馈结果 void Widget::replyFinished(QNetworkReply *reply) { QString displayInfo; int statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); //读取所有数据 QByteArray replyData = reply->readAll(); qDebug()<<"状态码:"<<statusCode; qDebug()<<"反馈的数据:"<<QString(replyData); //更新token if(function_select==3) { displayInfo="token 更新失败."; //读取HTTP响应头的数据 QList<QNetworkReply::RawHeaderPair> RawHeader=reply->rawHeaderPairs(); qDebug()<<"HTTP响应头数量:"<<RawHeader.size(); for(int i=0;i<RawHeader.size();i++) { QString first=RawHeader.at(i).first; QString second=RawHeader.at(i).second; if(first=="X-Subject-Token") { Token=second.toUtf8(); displayInfo="token 更新成功."; //保存到文件 SaveDataToFile(Token); break; } } qDebug()<<displayInfo; return; } //判断状态码 if(200 != statusCode) { //解析数据 QJsonParseError json_error; QJsonDocument document = QJsonDocument::fromJson(replyData, &json_error); if(json_error.error == QJsonParseError::NoError) { //判断是否是对象,然后开始解析数据 if(document.isObject()) { QString error_str=""; QJsonObject obj = document.object(); QString error_code; //解析错误代码 if(obj.contains("error_code")) { error_code=obj.take("error_code").toString(); error_str+="错误代码:"; error_str+=error_code; error_str+="\n"; } if(obj.contains("error_msg")) { error_str+="错误消息:"; error_str+=obj.take("error_msg").toString(); error_str+="\n"; } //显示错误代码 qDebug()<<error_str; } } return; } //语音识别 if(function_select==0) { //解析数据 QJsonParseError json_error; QJsonDocument document = QJsonDocument::fromJson(replyData, &json_error); if(json_error.error == QJsonParseError::NoError) { //判断是否是对象,然后开始解析数据 if(document.isObject()) { QString error_str=""; QJsonObject obj = document.object(); QString error_code; if(obj.contains("result")) { QJsonObject obj2=obj.take("result").toObject(); if(obj2.contains("text")) { QString text=obj2.take("text").toString(); qDebug()<<"识别的文本:"<<text; ui->lineEdit_text_display->setText(text); //浏览器搜索 QString url="https://www.baidu.com/s?ie=UTF-8&wd="+text; m_webView->load(QUrl(url)); } } //显示错误代码 qDebug()<<error_str; } } } }
-
人脸检测的英文名称是Face Detection. 人脸检测问题最初来源于人脸识别(Face Recognition)。人脸识别的研究可以追溯到上个世纪六、七十年代,经过几十年的曲折发展已日趋成熟。人脸检测是自动人脸识别系统中的一个关键环节。早期的人脸识别研究主要针对具有较强约束条件的人脸图象(如无背景的图象),往往假设人脸位置一直或者容易获得,因此人脸检测问题并未受到重视。随着电子商务等应用的发展,人脸识别成为最有潜力的生物身份验证手段,这种应用背景要求自动人脸识别系统能够对一般图象具有一定的识别能力,由此所面临的一系列问题使得人脸检测开始作为一个独立的课题受到研究者的重视。今天,人脸检测的应用背景已经远远超出了人脸识别系统的范畴,在基于内容的检索、数字视频处理、视频检测等方面有着重要的应用价值。人脸检测是指对于任意一幅给定的图像,采用一定的策略对其进行搜索以确定其中是否含有人脸,如果是则返回一脸的位置、大小和姿态。难点人脸检测是一个复杂的具有挑战性的模式检测问题,其主要的难点有两方面,一方面是由于人脸内在的变化所引起:(1)人脸具有相当复杂的细节变化,不同的外貌如脸形、肤色等,不同的表情如眼、嘴的开与闭等(2)人脸的遮挡,如眼镜、头发和头部饰物以及其他外部物体等;另外一方面由于外在条件变化所引起:(1)由于成像角度的不同造成人脸的多姿态,如平面内旋转、深度旋转以及上下旋转,其中深度旋转影响较大(2)光照的影响,如图像中的亮度、对比度的变化和阴影等。(3)图像的成像条件,如摄像设备的焦距、成像距离,图像获得的途径等等。这些困难都为解决人脸问题造成了难度。如果能找到一些相关的算法并能在应用过程中达到实时,将为成功构造出具有实际应用价值的人脸检测与跟踪系统提供保证技术应用一,身份认证与安全防护二,媒体与娱乐三,图像搜索
-
girl,moon,tree
-
随着计算机技术迅猛地发展,人工智能与机器学习已经渗透到我们日常生活的各个领域。为此,中国人民大学专门为全校财经和人文专业的学生开设了“人工智能与机器学习”课程,本书的所有作者都参与了该门课程的教学实践,相互配合,总结教学经验,共同打磨而成《人工智能与机器学习》一书。书中通过丰富现实案例的详细讲解,引导学生了解各种机器学习模型的基本原理与实践用法。避开了大量的数学模型和复杂编程知识,让学生熟悉当下流行的一些机器学习和数据处理工具的使用,来解决现实领域遇到的各种数据分析和预测问题。在早期计算机专家认为,只要可以在程序中写出足够多的明确规则来处理知识,就可以实现人工智能,这种方法被称为符号主义人工智能(symbolic AI)。后来在图灵关于“计算机除了执行我们的命令外,能否自我学习执行特定任务的方法”这一问题之后,又引出了一种新的编程范式。在符号主义人工智能范式中,人们输入规则(程序)以及根据这些规则要处理的数据,系统输出问题的答案。而在机器学习中,人们输入的是数据和从这些数据中预期得到的答案,系统输出的是规则,这些规则可以应用于新的数据并由计算机自动生成答案。这就是机器学习(machine learning),机器学习系统是训练出来的,而不是直接通过程序明确写出来的,所以,机器学习与数理统计密切相关。深度学习(deep learning)是机器学习的一个分支领域,深度学习强调从连续的层中进行学习,所谓深度是指一系列连续的表示层,数据模型包含的层数称为模型的深度,这些表示层都是通过数据训练自动学习的,通常它们是由神经网络(neural network)模型中学习得到的。我们可以这么理解,深度学习网络中的每一层都像一个过滤器,原始信息经过每一层的过滤器后纯度越来越高。神经网络中每层对输入数据所做的操作保存在当前层的权重(也称为该层的参数)中,权重的本质是一串数字,每一层实现的变换都由权重来参数化。于是,学习的意思就是指为神经网络的所有层找到一组权重值,使得神经网络能够将每个示例输入与其目标一一对应。神经网络的输出值与预期值之间的差距,由损失函数(也叫目标函数)来评价,损失函数的输入为预测值与真实目标值,然后计算出一个距离值,以此来衡量网络在这个示例上的效果好坏。深度学习则是利用这个距离值作为反馈信号来对权重值进行微调,以降低当前示例的损失值。微调的任务由优化器完成,该过程实现了反向传播算法。一开始给神经网络的权重赋予随机值,随着网络处理的示例越来越多,权重值向着正确方向一步步的调整,损失值也将逐渐降低,这个过程就是循环训练的过程。重复这个循环过程来得到使损失函数最小的权重值,而具有最小损失的网络,其输出和目标值尽可能地接近,这就是训练好的网络。
-
finishjv'l'ri't'c'f'v't
-
这里是温柔的云朵和平静的湖面
-
已完成
-
-
-
ModelArts中,进行OBS操作时,如使用mox.file.copy_parallel时,出现Error: stat:403错误。
-
Token消息体中user name,domain name和project name分别指的是什么
-
ModelArts.4603、ModelArts.4704一直报错,请问有什么方法解决
-
-
↵星空嘎嘎美丽,一次成功
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签