 
         // set headers
         session.defaultHeaders = defaultHeaders
+        if let headers = headers {
+            session.defaultHeaders.merge(headers) { (_, new) in new }
+        }
 
         // set callbacks
         session.onResults = success

       request. The base language model of the specified custom language model must match the
       model specified with the `model` parameter. By default, no custom model is used.
     - parameter learningOptOut: If `true`, then this request will not be logged for training.
     - parameter failure: A function executed whenever an error occurs.
     - parameter success: A function executed with all transcription results whenever
       a final or interim transcription is received.

        model: String? = nil,
        customizationID: String? = nil,
        learningOptOut: Bool? = nil,
        headers: [String: String]? = nil,
        failure: ((Error) -> Void)? = nil,
        success: @escaping (SpeechRecognitionResults) -> Void)
    {
