                 validateSTTWordTimestamp(timestamp)
             }
         } else {
-            XCTAssertNil(transcription.timestamps)
+            let isEmpty = (transcription.timestamps?.count == 0)
+            let isNil = (transcription.timestamps == nil)
+            XCTAssert(isEmpty || isNil)
         }
 
         if settings.wordConfidence == true && final {

            for word in transcription.wordConfidence! {
                validateSTTWordConfidence(word)
            }
        } else if settings.wordConfidence == true && !final {
            XCTAssertEqual(transcription.wordConfidence!.count, 0)
        } else {
            XCTAssertNil(transcription.wordConfidence)
        }
    }


            for (keyword, keywordResults) in result.keywordResults! {
                validateSTTKeywordResults(keyword, keywordResults: keywordResults)
            }
        } else {
            let isEmpty = (result.keywordResults?.count == 0)
            let isNil = (result.keywordResults == nil)
            XCTAssert(isEmpty || isNil)
        }

        if settings.wordAlternativesThreshold != nil && final {
