             XCTAssert(isEmpty || isNil)
         }
 
-        if settings.wordConfidence == true && final {
+        if settings.wordConfidence == true && final && best {
             XCTAssertNotNil(transcription.wordConfidence)
             XCTAssertGreaterThan(transcription.wordConfidence!.count, 0)
             for word in transcription.wordConfidence! {


    func validateSTTTranscription(
        transcription: SpeechToTextTranscription,
        final: Bool,
        settings: SpeechToTextSettings)
    {
        XCTAssertNotNil(transcription.transcript)
        XCTAssertGreaterThan(transcription.transcript!.characters.count, 0)

        // TODO: only available for best alterantive, but this checks all...
        // TODO: write a test that returns multiple alternatives, forcing this to fail...
        // TODO: perhaps here I can just check that 0.0 <= confidence <= 1.0 if the confidence
        //          is non-nil. elsewhere, I can check that exactly one alternative has confidence
        //          set.

        if final {
            XCTAssertNotNil(transcription.confidence)
            XCTAssertGreaterThanOrEqual(transcription.confidence!, 0.0)
            XCTAssertLessThanOrEqual(transcription.confidence!, 1.0)

            XCTAssertNil(transcription.confidence)
        }

        if settings.timestamps == true && (!final || best) {
            XCTAssertNotNil(transcription.timestamps)
            XCTAssertGreaterThan(transcription.timestamps!.count, 0)
            for timestamp in transcription.timestamps! {
