Swift: For-in 循环要求“[DeepSpeechTokenMetadata]”符合'Sequence'
Swift: For-in loop requires '[DeepSpeechTokenMetadata]' to conform to 'Sequence'
我 运行 遇到一个 for in 循环和数组的奇怪错误。它说
For-in loop requires '[DeepSpeechTokenMetadata]' to conform to 'Sequence'
这没有任何意义...它知道它是一个数组...
有问题的 for 循环:
var transcriptCandidate = decoded.transcripts[0].tokens
var words = [String]()
var timestamps = [Int]()
var workingString = ""
var lastTimestamp = -1
for (x, token) in transcriptCandidate {
let text = token.text
let timestamp = token.startTime
if(lastTimestamp == -1){
lastTimestamp = timestamp.toInt()
}
下面是 class 的定义,其中包含我要遍历的数组:
public struct DeepSpeechCandidateTranscript {
/// Array of DeepSpeechTokenMetadata objects
public private(set) var tokens: [DeepSpeechTokenMetadata] = []
/** Approximated confidence value for this transcript. This corresponds to
both acoustic model and language model scores that contributed to the
creation of this transcript.
*/
let confidence: Double
internal init(fromInternal: CandidateTranscript) {
let tokensBuffer = UnsafeBufferPointer<TokenMetadata>(start: fromInternal.tokens, count: Int(fromInternal.num_tokens))
for tok in tokensBuffer {
tokens.append(DeepSpeechTokenMetadata(fromInternal: tok))
}
confidence = fromInternal.confidence
}
}
谢谢!
您可以这样做,其中 x
是索引,token
是元素:
for (x, token) in transcriptCandidate.enumerated() {
}
如果您不需要索引,也可以这样做:
for token in transcriptCandidate {
}
我 运行 遇到一个 for in 循环和数组的奇怪错误。它说
For-in loop requires '[DeepSpeechTokenMetadata]' to conform to 'Sequence'
这没有任何意义...它知道它是一个数组...
有问题的 for 循环:
var transcriptCandidate = decoded.transcripts[0].tokens
var words = [String]()
var timestamps = [Int]()
var workingString = ""
var lastTimestamp = -1
for (x, token) in transcriptCandidate {
let text = token.text
let timestamp = token.startTime
if(lastTimestamp == -1){
lastTimestamp = timestamp.toInt()
}
下面是 class 的定义,其中包含我要遍历的数组:
public struct DeepSpeechCandidateTranscript {
/// Array of DeepSpeechTokenMetadata objects
public private(set) var tokens: [DeepSpeechTokenMetadata] = []
/** Approximated confidence value for this transcript. This corresponds to
both acoustic model and language model scores that contributed to the
creation of this transcript.
*/
let confidence: Double
internal init(fromInternal: CandidateTranscript) {
let tokensBuffer = UnsafeBufferPointer<TokenMetadata>(start: fromInternal.tokens, count: Int(fromInternal.num_tokens))
for tok in tokensBuffer {
tokens.append(DeepSpeechTokenMetadata(fromInternal: tok))
}
confidence = fromInternal.confidence
}
}
谢谢!
您可以这样做,其中 x
是索引,token
是元素:
for (x, token) in transcriptCandidate.enumerated() {
}
如果您不需要索引,也可以这样做:
for token in transcriptCandidate {
}