Error: there already is a keyword recognizer with "go" as one of its keyword UnityEngine.Windows.Speech.KeywordRecognizer:.ctor(String[])

I’m Trying to make speech recognition with KeywordRecognizer and Microsoft.Speech but i got this error

Error: there already is a keyword recognizer with “go” as one of its keyword UnityEngine.Windows.Speech.KeywordRecognizer:.ctor(String)

it sends me the same error even when i write a different word than go

this is my code:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Windows.Speech;
using System.Linq;

public class Recognition : MonoBehaviour {

    KeywordRecognizer KeywordRecognizer;
    Dictionary<string, System.Action> keywords = new Dictionary<string, System.Action>();

    void Start()
    {

        keywords.Add(" go ", () =>
        {
            GoCalled();
        });
        KeywordRecognizer = new KeywordRecognizer(keywords.Keys.ToArray());
        KeywordRecognizer.OnPhraseRecognized += KeywrodRecognizerOnPhraseRecognized;
        KeywordRecognizer.Start();
    }

    void KeywrodRecognizerOnPhraseRecognized(PhraseRecognizedEventArgs args)
    {
        System.Action keywordAction;
        if (keywords.TryGetValue(args.text , out keywordAction))
        {
            keywordAction.Invoke();
        }
    }

    void GoCalled()
    {
        print("you just said GO");
    }
}

I was hitting hit this error when loading a new scene and creating a new recognizer.
The error went away with:

void OnDestroy()
{
if (keywordRecognizer != null)
  {
    keywordRecognizer.Stop();
    keywordrecognizer.Dispose();
  }
}

I think even a better solution would be to create a singleton once (DontDestroyOnLoad)

Bit old question, but I had the same problem so I thought to add:

Make sure you start only ONE speech recognition script in the scene. If you have 2 objects with the script, you’ll get that error.

I had this problem for so long… Thank you very much!!!