# KeywordRecognizer

> KeywordRecognizer listens to speech input and attempts to match uttered phrases to a list of registered keywords.

## Definition

* **Type:** Class
* **Namespace:** [UnityEngine.Windows.Speech](/engine/6000.7/script-reference/unityengine/windows/speech.md)
* **Assembly:** UnityEngine.CoreModule
* **Inherits from:** [PhraseRecognizer](/engine/6000.7/script-reference/unityengine/windows/speech/phraserecognizer.md)
* **Implements:** [IDisposable](https://learn.microsoft.com/dotnet/api/system.idisposable)

```csharp
public sealed class KeywordRecognizer : PhraseRecognizer, IDisposable
```

## Remarks

There can be many keyword recognizers active at any given time, but no two keyword recognizers may be listening for the same keyword.

```csharp
using System;
using System.Text;
using UnityEngine;
using UnityEngine.Windows.Speech;

public class KeywordScript : MonoBehaviour
{
    [SerializeField]
    private string[] m_Keywords;

    private KeywordRecognizer m_Recognizer;

    void Start()
    {
        m_Recognizer = new KeywordRecognizer(m_Keywords);
        m_Recognizer.OnPhraseRecognized += OnPhraseRecognized;
        m_Recognizer.Start();
    }

    private void OnPhraseRecognized(PhraseRecognizedEventArgs args)
    {
        StringBuilder builder = new StringBuilder();
        builder.AppendFormat("{0} ({1}){2}", args.text, args.confidence, Environment.NewLine);
        builder.AppendFormat("\tTimestamp: {0}{1}", args.phraseStartTime, Environment.NewLine);
        builder.AppendFormat("\tDuration: {0} seconds{1}", args.phraseDuration.TotalSeconds, Environment.NewLine);
        Debug.Log(builder.ToString());
    }
}
```

Keyword recognizer is currently functional only on Windows 10.

## Constructors

| Constructor                                                                                                                                                                                                         | Description                                                                                                                                                       |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [KeywordRecognizer(System.String\[\])](/engine/6000.7/script-reference/unityengine/windows/speech/keywordrecognizer/ctor.md#keywordrecognizer\(string\))                                                            | Create a KeywordRecognizer which listens to specified keywords with the specified minimum confidence.  Phrases under the specified minimum level will be ignored. |
| [KeywordRecognizer(System.String\[\],UnityEngine.Windows.Speech.ConfidenceLevel)](/engine/6000.7/script-reference/unityengine/windows/speech/keywordrecognizer/ctor.md#keywordrecognizer\(string-confidencelevel\)) | Create a KeywordRecognizer which listens to specified keywords with the specified minimum confidence.  Phrases under the specified minimum level will be ignored. |

## Properties

| Property                                                                                             | Description                                                                              |
| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| [Keywords](/engine/6000.7/script-reference/unityengine/windows/speech/keywordrecognizer/keywords.md) | Returns the list of keywords which was supplied when the keyword recognizer was created. |

## Inheritance

**Inherited Members:**

* [PhraseRecognizer.Start()](/engine/6000.7/script-reference/unityengine/windows/speech/phraserecognizer/start.md)
* [PhraseRecognizer.Stop()](/engine/6000.7/script-reference/unityengine/windows/speech/phraserecognizer/stop.md)
* [PhraseRecognizer.Dispose()](/engine/6000.7/script-reference/unityengine/windows/speech/phraserecognizer/dispose.md)
* [PhraseRecognizer.IsRunning()](/engine/6000.7/script-reference/unityengine/windows/speech/phraserecognizer/isrunning.md)
* [PhraseRecognizer.OnPhraseRecognized()](/engine/6000.7/script-reference/unityengine/windows/speech/phraserecognizer/onphraserecognized.md)
