在云计算、大数据和人工智能如此火爆的当下,各种提供语音识别的云服务层出不群。近日,尝试制作了基于IBM Watson Speech to Text service辅助生成英语MP3字幕文件的工具,觉得还不错,特共享如下。

工具使用C#编制,具体思路如下:

第1步,使用内嵌的WebBrowser访问IBM有关服务网站:https://speech-to-text-demo.ng.bluemix.net/,界面如下方所示:

在该步骤下,需要手动点击网页的“Upload Audio File”按钮选择上传要配字幕的MP3音频文件。上传成功后,网站即开始自动识别过程。等到识别完成后,还需要手动点击下方的Word Timings and Alternatives,即可看到按顺序识别到的单词及对应的开始时刻。

注:(1)界面上方的保存按钮,可以将识别后的网页内容保存成本地htm文件,下一次可点击载入按钮直接载入,而无需重复识别过程。

(2)当点击界面下方的“下一步”按钮时,程序会自动扫描网页内容,生成由单词和时刻信息组成的单词时刻字典列表,这里记作lstDict,其类型为List<KeyValuePaire<string, string>>,列表中每个元素为键值对,Key存放单词,Value存放时刻信息。

第2步:载入英文原稿。如果没有原稿,可以在第1步网站的text标签页下将识别到的文本复制过来。界面如下图所示:

在该步骤下,原文尽量符合下面的要求:

(1)与音频文字完全对应。

(2)每行包含的单词尽可能长,这样可提高匹配率。

(3)避免出现非英文字符,特别是中文或非半角符号。

第3步,生成字幕。程序会按顺序将录入的原文逐行与第1步识别到的单词时刻字典进行匹配,以获得每行字幕的开始时刻。大概的思路如下:

(1)分词:使用正则表达式,将当前行拆分成单词数组。代码如下:

string[] a = Regex.Split(value, @"\s+");

(2)去噪:将数组中的每个单词中不符合英文习惯的符号去除或替换成符合英文规范的符号。

(3)匹配:将数组与第1步识别到的单词时刻字典lstDict进行匹配,以获得该行字幕的开始时刻。

下图给出识别结果界面:

这时候,注意到图中红色标注的时刻明显不正确,可以通过界面上方的“纠正”功能,手动选择对应的时刻。界面如下图所示:

至此,字幕信息匹配完毕,可点击下方的保存按钮将其存成对应格式的字幕文件,目前提供了对.lrc和.smi格式的支持。

注:点击界面上方的播放按钮可以选择音频文件实时播放并查看生成的字幕效果。

最后附上下载地址:

https://download.csdn.net/download/alvin_2005/10530316

一种为MP3生成字幕文件的方法相关推荐

  1. h5页面怎么处理文件流_一种H5页面效果生成视频文件的方法及系统与流程

    本发明涉及计算机技术领域,尤其涉及一种H5页面效果生成视频文件的方法及系统. 背景技术: 现有的视频合成方法均是将视频需要合成的各个元素拆分出来,针对每个元素进行合成视频,复杂度高,一旦需要添加新的动 ...

  2. VS2008生成DLL文件的方法、引用dll文件以及意义

    一 VS2008生成dll文件的方法     有两种方法:     1:傻瓜式操作     打开VS2008,依次点击:菜单->文件->新建项目->项目类型visual C#(这里假 ...

  3. (198)ISE14.7生成bit文件压缩方法

    (198)ISE14.7生成bit文件压缩方法 1 文章目录 1)文章目录 2)FPGA入门与提升课程介绍 3)FPGA简介 4)ISE14.7生成bit文件压缩方法 5)技术交流 6)参考资料 2 ...

  4. java动态生成pdf文件的方法

    java动态生成pdf文件 文章目录 java动态生成pdf文件 前言 一.生成pdf模板 二.使用步骤 1.使用jar包 2.pdf实现方法 总结 前言 java开发过程中难免会遇到生成文件的需求, ...

  5. php读取cookie文件,PHP读取CURL模拟登录时生成Cookie文件的方法,_PHP教程

    PHP读取CURL模拟登录时生成Cookie文件的方法, 本文实例讲述了PHP读取CURL模拟登录时生成Cookie文件的方法.分享给大家供大家参考.具体实现方法如下: 在使用PHP中的CURL模拟登 ...

  6. 使用XmlTextWriter生成XML文件的方法

    使用XmlTextWriter生成XML文件的方法,项目兼容需要生成一系列的xml文件,总结了下XML文件的生成基本方式: 项目兼容需要生成一系列的xml文件,总结了下XML文件的生成基本方式: Xm ...

  7. 生成jar文件的方法

    生成jar文件的方法. 菜单:Wizards--Archive builder 如果需要重新生成jar文件,则需要在菜单中选择 project--rebuilder 在jbuilder中加入其它jar ...

  8. linux物理内存地址与iomem,一种Linux系统物理内存镜像文件分析方法_4

    模块信息,如图7所示,给出了本发明的实施例中 模块结构关系图,modules变量指向某一个已加载模块结构体module地址,所有已加载模 块其module形成一个双向链表,如图7所示,据此可以获取到所 ...

  9. python数据生成pdf,Python生成pdf文件的方法

    摘要:这篇Python开发技术栏目下的"Python生成pdf文件的方法",介绍的技术点是"python生成pdf文件.python生成pdf.生成pdf文件.Pytho ...

最新文章

  1. 让我们定义一个ggplot版本的华夫饼图吧
  2. 初学Python常见异常错误,总有一处你会遇到!
  3. LINUX下使用https访问站点
  4. matlab的diray在哪,matlab笔记
  5. 第5讲:软考中高项04_进度管理、成本管理
  6. UVA10284 POJ2512 Chessboard in FEN【国际象棋】
  7. execCommand指令集详解
  8. 基于jsp、ssm企业工资管理系统
  9. VS运行应用程序无法正常启动(0xc000007b)。DirectX9.0无法修复
  10. VUE3 Composition API详解
  11. python弹幕点歌_GitHub - smilecc/blive-raspberry: 完全重构的树莓派B站直播弹幕点播台...
  12. 180724 安卓-SSLPinning及反制
  13. 关于esp-idf编译时ccache错误导致在libsodium库报poly1305.c.obj类文件找不到的问题
  14. java 写作速度_GMAT写作提高速度4条实用经验分享
  15. 西南交通大学2017年计算机复试笔试题(数据库)
  16. android迅雷包名,迅雷(com.xunlei.downloadprovider) - 7.21.1.7474 - 应用 - 酷安
  17. HANA服务器配额设置disk quota exceed(如何查看和取消配额)
  18. 基于一个线性层的softmax回归模型和MNIST数据集识别自己手写数字
  19. 移动机器人嵌入式系统详细篇
  20. 工信部备案查询验证码输入错误的原因

热门文章

  1. ORBSLAM3的IMU积分求解过程
  2. caffe 训练自己的数据 参考博客网址
  3. 洛谷4995 跳跳!
  4. HQChart使用教程29-走势图如何对接第3方数据4-叠加股票分时数据
  5. 天涯人脉通讯录2010 - 导入模板格式说明
  6. 【Python成长之路】如何用python开发自己的iphone应用程序,并添加至siri指令
  7. 数组c语言抓小偷,警察抓小偷C语言源码
  8. 个人练习 倒计时 轮播图
  9. 代码管理工具之SVN
  10. You may need an additional loader to handle the result of these loaders