草庐IT

最长支持5小时!实时语音转写,直播也能同步字幕

HMS Core 2023-03-28 原文

信息爆发时代,有效率有质量地整理视频、音频、文字等信息变得尤为重要。会议、讲座、采访、客服电话等场景均需要形成完整的文字记录材料,音视频文件也要配有字幕。语音转文字的智能化,让信息录入即时高效。

在直播类、会议类、笔记类的应用中都具备实时语音转写功能。例如,在音视频会议中,可以将发言内容可视化,即时生成会议纪要,方便记录、修改,提高会议效率;在直播类应用中,可以识别主播所说的话,达到“边说边出文字”的效果,提升用户观看体验,营造更好的直播氛围;在笔记类应用中,支持重点内容随讲随记,捕捉你的每一个想法。

HMS Core机器学习服务提供实时语音转写能力,让开发者在应用中构建长语音转文字功能。可以将会议记录、笔记、总结、音视频直播内容等音频流实时转换为文字流数据结果,实现即时对语音内容的识别,展现对应文字内容。

最高可支持5小时的实时长语音输入转换为文本,不仅能够输出标点符号,同时可以生成带有时间戳的文本信息。不管你是中文普通话、英语、法语,甚至中英文混说都能够很好识别,满足不同的场景需要。

实时语音转写部署情况

效果展示

在效果展示里我们可以看到通过实时语音转写功能转成的文字在结束后可以即刻进行编辑、复制、修改等,十分方便。

注意事项

• 目前法语实时语音转写服务仅支持华为手机和荣耀手机使用,中英文实时语音转写服务支持所有品牌手机。

• 实时语音转写服务通过访问云侧接口完成识别服务,调测和使用时需保证设备可正常访问互联网。

开发步骤

1 .在AppGallery Connect中配置相关信息。

在开发应用前,需要在AppGallery Connect中配置相关信息。

具体开发准备可以参考文档

2 .配置HMS Core SDK的Maven仓地址。

2.1 打开Android Studio项目级“build.gradle”文件。

2.2 添加HUAWEI agcp插件以及Maven代码库。

在allprojects->repositories里面配置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();
}

了解更多详情>>
访问机器学习服务联盟官网
获取机器学习服务开发指导文档
访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHubGitee

关注我们,第一时间了解 HMS Core 最新技术资讯~

有关最长支持5小时!实时语音转写,直播也能同步字幕的更多相关文章

  1. 使用canal同步MySQL数据到ES - 2

    文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co

  2. ruby - 如何使用 readline 支持重新安装 ruby​​? - 2

    我已经按照https://github.com/wayneeseguin/rvm#installation上的说明通过RVM安装了Ruby.有关信息,我有所有文件(readline-5.2.tar.gz、readline-6.2.tar.gz、ruby-1.9.3-p327.tar.bz2、rubygems-1.8.24.tgz、wayneeseguin-rvm-stable.tgz和yaml-0.1.4.tar.gz)在~/.rvm/archives目录中,我不想在任何目录中重新下载它们方式。当我这样做时:sudo/usr/bin/apt-getinstallbuild-essent

  3. ruby-on-rails - "undefined method ` stub_request '"访问 RSpec 支持文件中的方法时 - 2

    我的Ruby-on-Rails项目中有以下文件结构,用于规范:/spec/msd/serviceservice_spec.rb/support/my_modulerequests_stubs.rb我的request_stubs.rb有:moduleMyModule::RequestsStubsmodule_functiondeflist_clientsurl="dummysite.com/clients"stub_request(:get,url).to_return(status:200,body:"clientsbody")endend在我的service_spec.rb我有:re

  4. ruby - Ruby 是否支持逐字字符串? - 2

    Ruby是否支持(找不到更好的词)非转义(逐字)字符串?就像在C#中一样:@"c:\ProgramFiles\"...或者在Tcl中:{c:\ProgramFiles\} 最佳答案 是的,您需要在字符串前加上%前缀,然后是描述其类型的单个字符。你想要的是%q{c:\programfiles\}。镐书很好地涵盖了这一点here,部分是通用分隔输入。 关于ruby-Ruby是否支持逐字字符串?,我们在StackOverflow上找到一个类似的问题: https:/

  5. ruby - 在 Ruby 1.8 中支持 Ruby 1.9 的哈希语法 - 2

    我正在编写一个Rubygem,在我的代码中使用{key:'value'}哈希语法。我的测试都在1.9.x中通过,但我(可以理解)在1.8.7中得到syntaxerror,unexpected':',expecting')'。是否有支持1.8.x的最佳实践?我是否需要使用我们的老friend=>重写代码,还是有更好的策略? 最佳答案 我认为你运气不好,如果你想支持1.8,那么你必须使用=>。像往常一样,我会提到在1.9的某些情况下您必须使用=>:如果键不是一个符号。请记住,任何对象(符号、字符串、类、float……)都可以是Ruby哈

  6. (附源码)vue3.0+.NET6实现聊天室(实时聊天SignalR) - 2

    参考文章搭建文章gitte源码在线体验可以注册两个号来测试演示图:一.整体介绍  介绍SignalR一种通讯模型Hub(中心模型,或者叫集线器模型),调用这个模型写好的方法,去发送消息。  内容有:    ①:Hub模型的方法介绍    ②:服务器端代码介绍    ③:前端vue3安装并调用后端方法    ④:聊天室样例整体流程:1、进入网站->调用连接SignalR的方法2、与好友发送消息->调用SignalR的自定义方法 前端通过,signalR内置方法.invoke()  去请求接口3、监听接受方法(渲染消息)通过new signalR.HubConnectionBuilder().on

  7. ruby-on-rails - Rails 是否支持监听 UDP 套接字的简洁方式? - 2

    在Rails中,什么是集成更新模型某些元素的UDP监听过程的最佳方式(特别是它将向其中一个表添加行)。简单的答案似乎是在同一个进程中使用UDP套接字对象启动一个线程,但我什至不清楚我应该在哪里做适合Rails方式的事情。有没有一种巧妙的方法来开始收听UDP?具体来说,我希望能够编写一个UDPController并在每个数据报消息上调用一个特定的方法。理想情况下,我希望避免在UDP上使用HTTP(因为它会浪费一些在这种情况下非常宝贵的空间),但我完全控制消息格式,因此我可以为Rails提供它需要的任何信息。 最佳答案 Rails是一个

  8. ruby-on-rails - 本地 yaml key 的 i18n 同步 - 2

    类似的问题,但对于java,Keepingi18nresourcessynced如何保持i18nyamllocals的key同步?即,当将key添加到en.yml时,如何将它们添加到nb.yml或ru.yml?如果我在my_title:"atitle"旁边添加键my_label:"sometextinenglish"我想把它给我的其他本地人我指定,因为我不能做所有的翻译,它应该回到其他语言的英语例如en.ymlsomegroup:my_tile:"atitleinenglish"my_label:"sometextinenglish"othergroup:...我想发出命令,将整个键和

  9. ruby-on-rails - 在 Rails 应用程序的前端获取实时日志 - 2

    在Rails3.x应用程序中,我正在使用net::ssh并向远程pc运行一些命令。我想向用户的浏览器显示实时日志。比如,如果两个命令在net中运行::ssh执行即echo"Hello",echo"Bye"被传递然后"Hello"应该在执行后立即显示在浏览器中。这是代码我在ruby​​onrails应用程序中使用ssh连接和运行命令Net::SSH.start(@servers['local'],@machine_name,:password=>@machine_pwd,:timeout=>30)do|ssh|ssh.open_channeldo|channel|channel.requ

  10. ruby - Watir-Webdriver 是否支持点击目标为 javascript 的链接? - 2

    我是Ruby和Watir-Webdriver的新手。我有一套用VBScript编写的站点自动化程序,我想将其转换为Ruby/Watir,因为我现在必须支持Firefox。我发现我真的很喜欢Ruby,而且我正在研究Watir,但我已经花了一周时间试图让Webdriver显示我的登录屏幕。该站点以带有“我同意”区域的“警告屏幕”开头。用户点击我同意并显示登录屏幕。我需要单击该区域以显示登录屏幕(这是同一页面,实际上是一个表单,只是隐藏了)。我整天都在用VBScript这样做:objExplorer.Document.GetElementsByTagName("area")(0).click

随机推荐