首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS 10 SpeechKit:在部分结果期间需要帮助获取每个单词的时间戳

iOS 10 SpeechKit:在部分结果期间需要帮助获取每个单词的时间戳
EN

Stack Overflow用户
提问于 2017-01-18 09:39:24
回答 1查看 382关注 0票数 1

现在,我需要语音到文本转换中每个单词的时间戳--即单词开始的时间以及持续时间。

但是,当记录每个转录的结果时,只有在转录完全完成时才会记录时间戳和持续时间。

示例代码(来自Apple):

代码语言:javascript
复制
// Configure request so that results are returned before audio recording is finished
recognitionRequest.shouldReportPartialResults = true

// A recognition task represents a speech recognition session.
// We keep a reference to the task so that it can be cancelled.
recognitionTask = speechRecognizer.recognitionTask(with: recognitionRequest) { result, error in
    var isFinal = false

    if let result = result {
        self.textView.text = result.bestTranscription.formattedString
        isFinal = result.isFinal

        for word in result.bestTranscription.segments {
            print("\(word.substring)\(word.timestamp)")
        }
    }

    if error != nil || isFinal {
        self.audioEngine.stop()
        inputNode.removeTap(onBus: 0)

        self.recognitionRequest = nil
        self.recognitionTask = nil

        self.recordButton.isEnabled = true
        self.recordButton.setTitle("Start Recording", for: [])
    }
}

有谁知道如何实时获取单词的时间戳?它们实际上每次都返回0,直到它完成为止。我从这里获取示例代码:

https://developer.apple.com/library/prerelease/content/samplecode/SpeakToMe/Introduction/Intro.html

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-18 15:41:32

时间戳的计算是一个计算量很大的操作,它通常不会在解码过程中实现,只是作为结果的后处理。因此,在许多引擎中,不可能获得部分时间戳。

如果你仍然想要时间戳,你需要考虑一个不同的库,可能还有一个不同的算法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41710049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档