超简单集成华为HMS实时语音转写技术,轻松搞定会议纪要
前言
在工作中,我们经常需要整理会议内容、输出会议纪要,但是总遇到记录不全、遗漏重点等难题,逼着我们要全程进行会议录音。但发现重听会议录音又会很浪费时间、影响效率,往往一个小时的会议录音可能需要花费1.5个小时重听,更不用说长时间的会议录音了,瞬间工作量翻倍,妥妥要加班的节奏啊!
反正小编每次开会和整理会议纪要时,都在想:要是有个免费软件可以将领导讲话实时转化为文本就好了,那小编只需要简单修改、编辑、删减等,就可以快速输出会议纪要,简单又从容,完全就是商务精英模样。
现在机会来了——华为HMS ML Kit实时语音转写技术,轻松解决会议纪要输出费时费力的难题。重点是免费!
服务介绍
华为HMS实时语音转写技术具有以下功能:
- 支持5小时内实时语音转写
- 支持标点符号输出
- 支持生成带有时间戳的文本内容
- 端侧免费,超简单集成
- 支持普通话、中英混合、英文、法语等语言识别
应用场景介绍
华为实时语音转写技术除了满足会议语音内容实时转化为文本外,还可以应用于实时直播字幕添加、学术讲座、课程培训等场景。
例如,直播时,实时语音转写技术可以将直播音频内容实时输出为直播字幕,减少后期制作,提升观看体验。学术讲座时,实时语音转写技术将演讲者发言实时转化为文字上屏,实现演讲者话语可视化,即使在嘈杂环境下也能取得良好的演讲效果。课程培训时,利用实时语音转写服务可以实现重点内容随讲随记,再也不用担心记完上句遗漏下句了,实时输出课堂笔记,减少课后整理时间,留存更多时间理解和反应。
开发代码
1 在AppGallery Connect中配置相关信息。
在开发应用前,需要在AppGallery Connect中配置相关信息。
具体操作步骤:https://developer.huawei.com/consumer/cn/doc/HMSCore-Guides-V5/config-agc-0000001050990353-V5
2 配置HMS Core SDK的Maven仓地址。
2.1 打开Android Studio项目级“build.gradle"文件。
2.2 添加HUAWEI agcp插件以及Maven代码库。
在allprojects->repositoriesl里面配置HMS Core SDK的Maven仓地址。
allprojects {
repositories {
google()
jcenter()
maven {url 'https://developer.huawei.com/repo/'}
}
}
在buildscript->repositories里面配置HMS Core SDK的Maven仓地址。
buildscript {
repositories {
google()
jcenter()
maven {url 'https://developer.huawei.com/repo/'}
}
}
在buildscript ->dependencies里面增加配置。
buildscript{
dependencies {
classpath 'com.huawei.agconnect:agcp:1.3.1.300'
}
}
3 创建语音识别器,并设置配置。
MLSpeechRealTimeTranscriptionConfig config = new MLSpeechRealTimeTranscriptionConfig.Factory()
// 设置语言,目前支持中文、英语、法语转写。
.setLanguage(MLSpeechRealTimeTranscriptionConstants.LAN_ZH_CN)
// 设置标点。
.enablePunctuation(true)
// 设置句子的偏移。
.enableSentenceTimeOffset(true)
// 设置词的偏移。
.enableWordTimeOffset(true)
.create();
MLSpeechRealTimeTranscription mSpeechRecognizer = MLSpeechRealTimeTranscription.getInstance();
4 创建语音识别结果监听器回调。
// 回调实现MLSpeechRealTimeTranscriptionListener接口,实现接口中的方法。
protected class SpeechRecognitionListener implements MLSpeechRealTimeTranscriptionListener{
@Override
public void onStartListening() {
// 录音器开始接收声音。
}
@Override
public void onStartingOfSpeech() {
// 用户开始讲话,即语音识别器检测到用户开始讲话。
}
@Override
public void onVoiceDataReceived(byte[] data, float energy, Bundle bundle) {
// 返回给用户原始的PCM音频流和音频能量,该接口并非运行在主线程中,返回结果需要在子线程中处理。
}
@Override
public void onRecognizingResults(Bundle partialResults) {
// 从MLSpeechRealTimeTranscription接收到持续语音识别的文本。
}
@Override
public void onError(int error, String errorMessage) {
// 识别发生错误后调用该接口。
}
@Override
public void onState(int state,Bundle params) {
// 通知应用状态发生改变。
}
}
5 绑定语音识别器。
mSpeechRecognizer.setRealTimeTranscriptionListener(new SpeechRecognitionListener());
6 调用startRecognizing启动语音识别。
mSpeechRecognizer.startRecognizing(config);
7 识别完成后,结束识别并释放资源。
if (mSpeechRecognizer!= null) {
mSpeechRecognizer.destroy();
}
DEMO演示