SpringBoot项目(百度AI整合)——如何在Springboot中使用语音文件识别 & ffmpeg的安装和使用

慈云数据 6个月前 (05-13) 技术支持 57 0

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)

img

正文

在这里插入图片描述

2.选中作为lib引入

在这里插入图片描述

点击确定,导入成功

在这里插入图片描述

3.拷贝官网的案例

拷贝官网的案例,导入jar包里面的包

在这里插入图片描述

加入配置文件,日志相关

在这里插入图片描述

4.获得语音识别案例文件

然后我发现语音识别需要的文件格式是pcm的格式,所以又找了工具去转其他格式的文件为pcm,后来发现每次调用总是出各种文件;最后经过一番波折,终于在官网的python案例中找到一个示例文件。。。。

在这里插入图片描述

中间各种bug,最后终于用找到的这个案例跑通

在这里插入图片描述

三、如何结合springboot使用

jar包的理解

在这里插入图片描述

简易spring项目搭建总览

在这里插入图片描述

1.导入依赖

4.0.0

com.tianju

baidu-api

1.0-SNAPSHOT

org.springframework.boot spring-boot-starter-parent 2.6.13 org.springframework.boot spring-boot-starter-web com.baidu.aip java-sdk 4.16.16 com.alibaba fastjson 2.0.12 org.projectlombok lombok true junit junit 4.12 test

2.进行配置

BaiduPro配置类

package com.tianju.config.baidu;

import lombok.AllArgsConstructor;

import lombok.Data;

import lombok.NoArgsConstructor;

import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.context.annotation.PropertySource;

import org.springframework.stereotype.Component;

/**

* 专门用来获取配置文件里的值

*/

@Component

@ConfigurationProperties(prefix = “baidu”)

@PropertySource(“classpath:config/baiduAip.properties”)

@Data

@NoArgsConstructor

@AllArgsConstructor

public class BaiduPro {

private String appId;

private String apiKey;

private String secretKey;

}

配置类,放入容器中

package com.tianju.config.baidu;

import com.baidu.aip.speech.AipSpeech;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

/**

* 百度相关的配置文件

*/

@Configuration

public class BaiduConfig {

@Autowired

private BaiduPro baiduPro;

/**

* 语音相关 AipSpeech

* @return AipSpeech放容器中

*/

@Bean

public AipSpeech aipSpeech(){

// 初始化一个AipSpeech

AipSpeech client = new AipSpeech(baiduPro.getAppId(), baiduPro.getApiKey(), baiduPro.getSecretKey());

// 可选:设置网络连接参数

client.setConnectionTimeoutInMillis(2000);

client.setSocketTimeoutInMillis(60000);

return client;

}

}

3.controller层进行调用

GET http://localhost:10050/api/baidu/hello

package com.tianju.config.controller;

import com.baidu.aip.speech.AipSpeech;

import com.tianju.config.resp.HttpResp;

import lombok.extern.slf4j.Slf4j;

import org.json.JSONObject;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

@RestController

@RequestMapping(“/api/baidu”)

@Slf4j

public class BaiduApiController {

@Autowired

private AipSpeech aipSpeech;

@GetMapping(“/hello”)

public HttpResp hello(){

JSONObject pcm = aipSpeech.asr(

“D:\Myprogram\springboot-workspace\spring-project\baidu-api\src\main\resources\static\helloAipSpeech.pcm”,

“pcm”, 16000, null);

log.debug(“get response:”+pcm.toString());

return HttpResp.success(pcm.toString());

}

}

四、ffmpeg的使用简介

在这里插入图片描述

1.基础知识

官网: https://ffmpeg.org/

FFMPEG简介

FFmpeg的名称来自MPEG视频编码标准,前面的“FF”代表“Fast Forward”,FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。可以轻易地实现多种视频格式之间的相互转换。

FFmpeg的用户有Google,Facebook,Youtube,优酷,爱奇艺,土豆等

基础知识

1.容器/文件(Conainer/File):即特定格式的多媒体文件,比如mp4、flv、mkv等。

2.媒体流(Stream):表示时间轴上的一段连续数据,如一段声音数据、一段视频数据或一段字幕数据,可以是压缩的,也可以是非压缩的,压缩的数据需要关联特定的编解码器

3.数据帧/数据包(Frame/Packet):通常,一个媒体流是由大量的数据帧组成的,对于压缩数据,帧对应着编解码器的最小处理单元,分属于不同媒体流的数据帧交错存储于容器之中。

一般情况下:

Frame对应压缩前的数据,Packet对应压缩后的数据。

4.编解码器(Codec):以帧为单位实现压缩数据和原始数据之间的相互转换的

5.复用(mux):把不同的流按照某种容器的规则放入容器,这种行为叫做复用(mux)

6.解复用(mux):把不同的流从某种容器中解析出来,这种行为叫做解复用(demux)

\7. 码率和帧率是视频文件的最重要的基本特征,对于他们的特有设置会决定视频质量。如果我们知道码率和时长那么可以很容易计算出输出文件的大小。

8.帧率:帧率也叫帧频率,帧率是视频文件中每一秒的帧数,肉眼想看到连续移动图像至少需要15帧。

9.码率:比特率(也叫码率,数据率)是一个确定整体视频/音频质量的参数,秒为单位处理的位数,码率和视频质量成正比,在视频文件中中比特率用bps来表达。

2.安装和命令的使用

在这里插入图片描述

下载后,到指定位置解压,然后进行环境变量的配置

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)

img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

在这里插入图片描述

下载后,到指定位置解压,然后进行环境变量的配置

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)

[外链图片转存中…(img-WHs0OAo9-1713162001513)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon