Swift:使用时间戳渲染转录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift:使用时间戳渲染转录相关的知识,希望对你有一定的参考价值。

我正在制作一个从语音转换为文本的应用程序,现在我试图在屏幕上显示结果,我想知道如何做到这一点(来自Otter应用程序:]

https://imgur.com/a/8gZgVT0

基本思路:

  • 1个对话中有多个句子
  • 每个句子有多个单词,这些单词都有自己的时间戳,并将突出显示以与当前音频播放时间相匹配
  • 我们可以在每个时间戳上单击每个单词来播放音频
  • 您可以在GIF的末尾看到,我们可以滚动滑块,并且单词将自动突出显示

我的想法:

  • 我正在考虑渲染表示每个单词的UILabel(或UIButton),通过这样做,我们可以单击每个Label并跳转到正确的时间,但是我不知道如何附加UILabel到同一行中的另一个UILabel,尝试搜索但找不到解决方案。一个句子可以很长,可以包含多个单词,因为如果需要的话,它需要分成多行]
  • [此外,我想知道,要使标签在音频播放(或滚动滑块)时自动突出显示,它们应该如何“监视”音频播放时间的变化(或滑块值的变化)。 1个对话可能包含很多句子,如果我们以低效率的方式“观看”,将导致性能下降
答案

我宁愿建议使用UIButton而不是UILabel,因为它很容易为其设置拍子识别器,并且支持开箱即用的突出显示。如果我们谈论一种简单的方法来接连放置多个视图,则首先想到的是使用UIStackView –易于定制和使用。最困难的部分是跟踪音频播放并将其与UI同步。第一种方法是跟踪回放,当回放进入特定转录范围时,将其索引和突出显示按钮置于arrangedSubviewsUIStackView处的相同索引处。]

以上是关于Swift:使用时间戳渲染转录的主要内容,如果未能解决你的问题,请参考以下文章

通过 Google Cloud Speech API 获取每个转录单词的时间戳?

Swift 4:Firebase 时间戳

Swift:摆脱时间戳 NSLog()

时间戳方程 - Firebase 数据库 + Swift

Swift - 处理 Firebase 时间戳

将 Firebase Firestore 时间戳转换为日期(Swift)?