 	}
 
 	private func handleDoneReading() {
+		sendSpeaking(false)
+
 		// Should we make a new encoder?
 		// If no, that means a new encoder has already been requested, creating a new one could lead to a race where we
 		// get stuck in a loop of making new encoders

		    guard !done else {
		    	DefaultDiscordLogger.Logger.debug("No data, reader probably closed", type: this.logType)

		    	this.sendGatewayPayload(DiscordGatewayPayload(code: .voice(.speaking), payload: .object([
		    		"speaking": false,
		    		"delay": 0
		    	])))

		    	this.handleDoneReading()

		    	return

		    if count == 1 {
		    	this.startTime = this.currentUnixTime

		    	this.sendSpeaking(true)
		    }

		    this.sendVoiceData(data)
