PHP对接百度语音识别技术

PHP对接百度语音识别技术

引言

在目前的各种应用场景中,语音识别技术已经越来越常用,并且其应用场景正在不断扩大。

百度提供的语音识别服务允许用户通过简单的接口调用,将语音内容转换为文本。

本文将通过PHP语言集成百度的语音识别服务,并分享一些实施过程中的技巧和需要注意的问题。

准备工作

1.注册百度开放平台账号

在百度官网https://open.baidu.com/ 注册一个账号

2.创建应用并获取API Key和Secret Key

注册完毕后,登录百度开放平台;

点击左侧菜单栏中的"AI开放平台";

然后选择"语音技术",再选择"语音识别"。

在语音识别页面中,点击"创建应用",填写相关信息并提交。

创建成功后,我们可以在应用管理页面中获得API Key和Secret Key;

这两个密钥将在后续中使用。

在这里插入图片描述

3.运行命令安装Laravel框架百度平台扩展包

composer require zhangyu-cq/laravel-baidu-aip

发布配置

php artisan vendor:publish --provider="ZhangyuCq\LaravelBaiduAip\BaiduAipServiceProvider"

配置对应的密钥

    return ['app_id' => env('BAIDU_APP_ID',''),'app_key' => env('BAIDU_APP_KEY',''),'app_secret' => env('BAIDU_APP_SECRET','')];

封装百度语音识别接口

百度语音转文字

public function asrChar(Request $request){$this->validate($request, ['file' => 'required',]);$file = $request->file('file');$name = $file->getClientOriginalName();$file_info = pathinfo($name);$file = file_get_contents($file);$data = AipSpeech::asr($file, $file_info['extension'], 16000, ['dev_pid' => 1537]);if ($data['err_no'] == 0) {$text = $data['result'][0];echo $text;} else {echo '转译失败:'.$data['err_msg'];}}

百度文字转语音

    public function synthesis(Request $request){$this->validate($request, ['content' => 'required',]);$content = $request->get('content');$data = AipSpeech::synthesis($content, 'zh', 1, array('vol' => 5,));$time = date('YmdHis') . rand(111111, 999999);//设置上传到哪个目录下$path = '/uploads/synthesis';$file_name = "/$time.mp3";//没有则创建if (!file_exists(public_path() . $path)) {mkdir(public_path() . $path, 0755, true);}file_put_contents(public_path() . $path . $file_name, $data);echo '文件路径如下:'.$path . $file_name;}

踩坑日记

百度语音识别接口对音频文件有特定的要求:它仅接受16KHz采样率的wav格式文件。

如果需要识别的音频文件不符合这些要求,必须先转换成合适的格式和采样率。

此外,接口对音频的长度也有限制,单次识别不能超过60秒,因此长音频需要被分割成多个短片段。

在使用接口时,还需要注意错误处理:

通过检查返回结果中的err_no来判断识别是否成功,并根据err_msg字段来处理识别失败的情况。

结论

我们已经能够成功地集成PHP与百度语音识别接口,并根据接口返回的数据执行相应的操作。

在实际的开发过程中,我们还可以进一步扩展功能,例如实现实时的语音识别服务或语音合成技术,以满足更广泛的业务需求。

– 欢迎点赞、关注、转发、收藏【我码玄黄】,gonghao同名

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/843937.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

批量视频剪辑神器:高效提取随机秒数画面,轻松实现视频素材精准筛选!

在数字化时代,视频内容已成为我们生活中不可或缺的一部分。无论是个人创作者还是专业团队,都需要对视频素材进行高效处理。然而,面对大量的视频文件,如何快速提取出我们所需的画面片段,却成为了一个令人头疼的问题。今…

【源码】【海外客服】简洁版海外客服系统/在线客服系统/即时聊天通讯源码

1,此版本采用前台一人或多人与后台一人(管理员)进行会话模式 2,此版本前后台只能发送文字和图片(图片是选择后自动发送) 3,前后台根据IP来识别不同的会话者 4,前台发起会话后&…

大数据——Spark

1.Spark MLlib概述 MLlib是Spark的机器学习(Machine Learning)库,旨在简化机器学习的工程实践工作,并方便扩展到更大规模。 MLlib由一些通用的学习算法和工具组成,包括分类、回归、聚类、协同过滤、降维等&#xff0…

学习Uni-app开发小程序Day20

今天学习了:页面的渐变背景、使用deep修改子组件样式、全屏页面absolute定位布局和fit-content内容宽度、遮罩层状态转换及日期格式化、uni-popup弹窗层制作弹出信息 页面的渐变背景 需要设置页面背景,使用的是多个页面,这样就可以把背景做…

开源自定义表单系统源码 一键生成表单工具 可自由DIY表单模型+二开

分享一款开源自定义表单系统源码,能够实现99%各行业的报名、预约、加盟申请、调查等应用,而且同时多开创建多个表单,支持自定义各种字段模型,市面上需要的表单模型都含了,随便自定义啦,含完整的代码包和详细…

经典文献阅读之--SMERF(通过标清导航地图增强车道感知和拓扑理解)

Tip: 如果你在进行深度学习、自动驾驶、模型推理、微调或AI绘画出图等任务,并且需要GPU资源,可以考虑使用Compshare的GPU算力云平台。他们提供高性价比的4090 GPU,按时收费每卡2.6元,月卡只需要1.7元每小时,并附带200G…

数组-捡石子小游戏

一、题目描述 二、解题思路 刚开始拿到题目的时候在想是不是需要把所有情况枚举出来,其实思考一下能看出规律: 1.如果有1、2、3颗石子,小牛一定可以赢; 2.再来看4颗石子的时候,小牛A可以拿1~3颗,但是无论小…

探索电商ERP平台的功能架构:实现高效运营的关键

在当今数字化时代,电子商务已经成为了商业运营的主流模式之一。为了应对日益激烈的市场竞争,企业需要借助先进的技术工具来提高运营效率和管理能力。在这篇博客中,我们将深入探讨电商ERP平台的功能架构,揭示其如何成为实现高效运营…

JVM学习-字节码指令集(一)

概述 Java字节码对于虚拟机,好像汇编语言对于计算机,属于基本执行指令Java虚拟机的指令由一个字节长度的,代表某种特定操作含义 的数字(称为操作码Opcode)以及跟随其后的零至多个代表此操作所需参数(操作数,Operands)而构成&…

SaaS 应用之权限管理设计

SaaS 应用中常见的权限设计细节 角色权限模型 角色分层 通常有超级管理员、管理员、普通用户等不同层级的角色。 角色继承 上级角色的权限可以继承给下级角色,形成权限的层级关系。 角色权限矩阵 为每个角色明确定义可执行的操作,如查看、编辑、删除等。 角色动态分配 …

【Linux】22. 线程控制

Linux线程控制 POSIX线程库 与线程有关的函数构成了一个完整的系列&#xff0c;绝大多数函数的名字都是以“pthread_”打头的 要使用这些函数库&#xff0c;要通过引入头文<pthread.h> 链接这些线程函数库时要使用编译器命令的“-lpthread”选项 线程创建 pthread_cr…

鸿蒙开发接口UI界面:【@ohos.router (页面路由)】

页面路由 说明开发前请熟悉鸿蒙开发指导文档&#xff1a;gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 本模块首批接口从API version 8开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。页面路由需要在页面渲染完…

AI与空间设计的碰撞?

遇到难题不要怕&#xff01;厚德提问大佬答&#xff01; 厚德提问大佬答9 你是否对AI绘画感兴趣却无从下手&#xff1f;是否有很多疑问却苦于没有大佬解答带你飞&#xff1f;从此刻开始这些问题都将迎刃而解&#xff01;你感兴趣的话题&#xff0c;厚德云替你问&#xff0c;你解…

探索python数据可视化的奥秘:打造专业绘图环境

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、搭建专业绘图环境 二、掌握绘图基本原理 三、解锁绘图高级技巧 四、总结与展望 在数据…

Kivy.garden.NavigationDrawer 后续学习

如百词斩部分代码 MRWord\pages\infopage\info.kv <InfoPage>:anim_type: slide_above_simpleid: main_winbox_button_anchor: box_button_anchor.__self__three_labels_box: three_labels_box.__self__box_phonetic: box_phonetic.__self__BoxLayout:BoxLayout:id: ma…

leetcode力扣 300. 最长递增子序列 II

给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 示例 1&#…

JavaScript跨界记:从网页到指尖的移动应用开发之旅【含代码示例】

JavaScript跨界记&#xff1a;从网页到指尖的移动应用开发之旅【含代码示例】 基础概念&#xff1a;JavaScript在移动开发的立足之地React Native&#xff1a;原生的诱惑Ionic&#xff1a;Web的浪漫 代码示例&#xff1a;Hello, Mobile World!React Native 示例Ionic 示例 功能…

比较(一)利用python绘制条形图

比较&#xff08;一&#xff09;利用python绘制条形图 条形图&#xff08;Barplot&#xff09;简介 条形图主要用来比较不同类别间的数据差异&#xff0c;一条轴表示类别&#xff0c;另一条则表示对应的数值度量。 快速绘制 基于seaborn import seaborn as sns import matplo…

banner2.0自定义轮播布局

说明&#xff1a;最近碰到一个需求&#xff0c;让新闻列表实现轮播图的效果&#xff0c;也就是轮播新闻&#xff0c;然后样式必须按照ui设计的样式来弄&#xff0c;之前传统的banner&#xff0c;都是只轮播图片&#xff0c;没想到&#xff0c;这次居然要轮播新闻&#xff0c; 网…

HTML、CSS网页入门

HTML&#xff08;超文本标记语言&#xff09;是一种用于创建网页的标记语言。它由一系列的标签组成&#xff0c;这些标签用来描述网页的结构和内容。HTML通过这些标签来标识文本、图片、链接、表格等元素&#xff0c;从而使浏览器能够正确地渲染和显示网页内容。 HTML的基本工…