> ## Documentation Index
> Fetch the complete documentation index at: https://own-c8c61ef7.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Word Boosting

> Improve recognition accuracy for important keywords

<Badge color="purple">Real-Time</Badge>

Word Boosting (also known as Keyword/Keyterm Prompting) allows you to improve Keyword Recall Rate (KRR) for important keywords or phrases by up to 90%. This feature helps ensure accurate transcription of industry-specific terminology, product names, company names, and specialized jargon.

## Enabling Word Boosting

Add `keywords` parameter as an array of strings in the format `word:weight` where weight is a positive number indicating boost intensity.

<Note>
  Word Boosting is currently only available for the Real-Time WebSocket API.
</Note>

### Real-Time WebSocket API

```javascript theme={null}
const url = new URL("wss://waves-api.smallest.ai/api/v1/pulse/get_text");
url.searchParams.append("language", "en");
url.searchParams.append("encoding", "linear16");
url.searchParams.append("sample_rate", "16000");
url.searchParams.append("keywords", JSON.stringify(["nacho:5.0", "bacon cheeseburger:4.0"]));

const ws = new WebSocket(url.toString(), {
  headers: {
    Authorization: `Bearer ${API_KEY}`,
  },
});
```

## Case Sensitivity and Formatting

Keywords preserve formatting (including case and punctuation) which helps control how proper nouns, product names, or company names are transcribed.

Best practices for keyword formatting:

* For proper nouns (names, brands, titles): Use appropriate capitalization (`Waves`, `iPhone`, `Dr. Smith`)
* For non-proper nouns: Use lowercase (`tretinoin`, `algorithm`, `protocol`)

When smart formatting is applied to the transcript, words that start sentences may be automatically capitalized regardless of keyword formatting.

## Expected Improvements

Word Boosting can significantly improve recognition accuracy and confidence scores for industry-specific terminology. Typical improvements include:

<table style={{ borderCollapse: 'separate', borderSpacing: 0, width: '100%', borderRadius: '8px', overflow: 'hidden' }}>
  <thead>
    <tr style={{ backgroundColor: 'rgba(255, 255, 255, 0.08)' }}>
      <th style={{ padding: '12px 16px', textAlign: 'left', fontWeight: '800', border: '0.5px solid rgba(209, 213, 219, 0.2)', borderTopLeftRadius: '8px' }}>Source</th>
      <th style={{ padding: '12px 16px', textAlign: 'left', fontWeight: '800', border: '0.5px solid rgba(209, 213, 219, 0.2)' }}>Before Recognition</th>
      <th style={{ padding: '12px 16px', textAlign: 'left', fontWeight: '800', border: '0.5px solid rgba(209, 213, 219, 0.2)', borderTopRightRadius: '8px' }}>After Recognition</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td style={{ padding: '12px 16px', border: '0.5px solid rgba(209, 213, 219, 0.2)' }}>nacho stack double crunch taco</td>
      <td style={{ padding: '12px 16px', border: '0.5px solid rgba(209, 213, 219, 0.2)' }}>"macho stack"</td>
      <td style={{ padding: '12px 16px', border: '0.5px solid rgba(209, 213, 219, 0.2)' }}>"nacho stack double crunch taco"</td>
    </tr>

    <tr>
      <td style={{ padding: '12px 16px', border: '0.5px solid rgba(209, 213, 219, 0.2)' }}>bacon cheeseburger</td>
      <td style={{ padding: '12px 16px', border: '0.5px solid rgba(209, 213, 219, 0.2)' }}>"bake in cheeseburger"</td>
      <td style={{ padding: '12px 16px', border: '0.5px solid rgba(209, 213, 219, 0.2)' }}>"bacon cheeseburger"</td>
    </tr>

    <tr>
      <td style={{ padding: '12px 16px', border: '0.5px solid rgba(209, 213, 219, 0.2)' }}>account number</td>
      <td style={{ padding: '12px 16px', border: '0.5px solid rgba(209, 213, 219, 0.2)' }}>"a count number"</td>
      <td style={{ padding: '12px 16px', border: '0.5px solid rgba(209, 213, 219, 0.2)' }}>"account number"</td>
    </tr>

    <tr>
      <td style={{ padding: '12px 16px', border: '0.5px solid rgba(209, 213, 219, 0.2)' }}>billing department</td>
      <td style={{ padding: '12px 16px', border: '0.5px solid rgba(209, 213, 219, 0.2)' }}>"building department"</td>
      <td style={{ padding: '12px 16px', border: '0.5px solid rgba(209, 213, 219, 0.2)' }}>"billing department"</td>
    </tr>

    <tr>
      <td style={{ padding: '12px 16px', border: '0.5px solid rgba(209, 213, 219, 0.2)', borderBottomLeftRadius: '8px' }}>technical support</td>
      <td style={{ padding: '12px 16px', border: '0.5px solid rgba(209, 213, 219, 0.2)' }}>"tech nil call support"</td>
      <td style={{ padding: '12px 16px', border: '0.5px solid rgba(209, 213, 219, 0.2)', borderBottomRightRadius: '8px' }}>"technical support"</td>
    </tr>
  </tbody>
</table>

### Best Practices for Keyword Selection

<AccordionGroup>
  <Accordion title="Industry-specific terminology">
    Medical terms (`tretinoin:5.0`, `diagnosis:4.0`), technical jargon (`escalation:4.5`, `API:3.5`)
  </Accordion>

  <Accordion title="Product and company names">
    Brand names (`Waves:5.0`, `iPhone:5.0`), service names, competitor names
  </Accordion>

  <Accordion title="Multi-word phrases">
    Common phrases in your domain (`account number:4.0`, `customer service:3.5`)
  </Accordion>

  <Accordion title="Proper nouns">
    Names, brands, titles with appropriate capitalization (`Dr. Smith:5.0`)
  </Accordion>

  <Accordion title="Common non-proper nouns">
    Use lowercase (`algorithm:3.0`, `protocol:3.0`, `refill:4.0`)
  </Accordion>
</AccordionGroup>

### What to Avoid

<AccordionGroup>
  <Accordion title="Generic common words">
    Very common words that are rarely misrecognized (`the`, `and`, `is`) - don't boost these
  </Accordion>

  <Accordion title="Overly broad terms">
    Words that appear in many contexts without specific meaning
  </Accordion>

  <Accordion title="Excessive keywords">
    Focus on the most important 20-50 terms with appropriate weight values
  </Accordion>

  <Accordion title="Inconsistent formatting">
    Ensure capitalization matches your desired output
  </Accordion>

  <Accordion title="Extreme values">
    Avoid using only very high weights (10+) or very low weights (1) - use a range (1-10) to differentiate importance levels
  </Accordion>
</AccordionGroup>
