# text-to-speech icon

Text to speech. Gentleface icon, drawn on the 16 px pixel grid. Free, MIT licensed. Page: https://gentleface.com/icons/text-to-speech

- Category: Audio & video
- Use it for: text to speech, read aloud, screen reader, tts, speak text, auto read, select to speak
- Tags: tts, read-aloud, speak, voice, narrate, narration, audio, screen-reader, speech, synthesis
- Family: speech-to-text
- Component name: TextToSpeechIcon
- Added: 2026-10-29
- Since: version 0.2.0
- npm: `import { TextToSpeechIcon } from '@gentleface/react';` (@gentleface/react 0.2.0)
- Changed: 2026-10-30 (added)

## Alternatives

- `accessibility`: accessibility settings as a whole

## Also fits

- audio description: read on-screen text aloud
- speech: reading text aloud
- listen: have text read aloud (read-aloud)
- speech to text: read text aloud (read-aloud)

## Files

Each SVG is 16 × 16 with fill="currentColor". Keep it at 16 px or an exact multiple (32, 48) on whole pixels: a fractional size or position blurs it.

- line-round: https://gentleface.com/svg/line-round/16/text-to-speech.svg · PNG https://gentleface.com/png/line-round/16/text-to-speech.png · https://gentleface.com/png/line-round/32/text-to-speech.png · https://gentleface.com/png/line-round/48/text-to-speech.png
- line-soft: https://gentleface.com/svg/line-soft/16/text-to-speech.svg · PNG https://gentleface.com/png/line-soft/16/text-to-speech.png · https://gentleface.com/png/line-soft/32/text-to-speech.png · https://gentleface.com/png/line-soft/48/text-to-speech.png
- line-sharp: https://gentleface.com/svg/line-sharp/16/text-to-speech.svg · PNG https://gentleface.com/png/line-sharp/16/text-to-speech.png · https://gentleface.com/png/line-sharp/32/text-to-speech.png · https://gentleface.com/png/line-sharp/48/text-to-speech.png
- solid-round: https://gentleface.com/svg/solid-round/16/text-to-speech.svg · PNG https://gentleface.com/png/solid-round/16/text-to-speech.png · https://gentleface.com/png/solid-round/32/text-to-speech.png · https://gentleface.com/png/solid-round/48/text-to-speech.png
- solid-soft: https://gentleface.com/svg/solid-soft/16/text-to-speech.svg · PNG https://gentleface.com/png/solid-soft/16/text-to-speech.png · https://gentleface.com/png/solid-soft/32/text-to-speech.png · https://gentleface.com/png/solid-soft/48/text-to-speech.png
- solid-sharp: https://gentleface.com/svg/solid-sharp/16/text-to-speech.svg · PNG https://gentleface.com/png/solid-sharp/16/text-to-speech.png · https://gentleface.com/png/solid-sharp/32/text-to-speech.png · https://gentleface.com/png/solid-sharp/48/text-to-speech.png

The SVG of every style: https://gentleface.com/icons/text-to-speech.json (`svg`).

## Code (line-round)

The snippets are decorative (aria-hidden). For an icon that carries meaning on its own, such as an icon-only button, label the button, or give the SVG role="img" and an aria-label. For another style, take its SVG from the JSON and swap the path `d`.

### SVG

```svg
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M12.95 2.55C13.606 3.207 14.112 3.964 14.467 4.821C14.822 5.679 15 6.572 15 7.5C15 8.428 14.822 9.321 14.467 10.179C14.112 11.036 13.606 11.793 12.95 12.45C12.85 12.549 12.732 12.599 12.596 12.599C12.46 12.599 12.342 12.549 12.243 12.45C12.143 12.35 12.093 12.232 12.093 12.096C12.093 11.96 12.143 11.842 12.243 11.743C12.805 11.18 13.239 10.531 13.543 9.796C13.848 9.061 14 8.296 14 7.5C14 6.704 13.848 5.939 13.543 5.204C13.239 4.469 12.805 3.82 12.243 3.257C12.145 3.16 12.096 3.042 12.096 2.904C12.096 2.766 12.145 2.648 12.243 2.55C12.342 2.451 12.46 2.401 12.596 2.401C12.732 2.401 12.85 2.451 12.95 2.55ZM7.856 4.144C7.952 4.241 8 4.359 8 4.5C8 4.641 7.952 4.759 7.856 4.856C7.759 4.952 7.641 5 7.5 5L1.5 5C1.359 5 1.241 4.952 1.144 4.856C1.048 4.759 1 4.641 1 4.5C1 4.359 1.048 4.241 1.144 4.144C1.241 4.048 1.359 4 1.5 4L7.5 4C7.641 4 7.759 4.048 7.856 4.144ZM12 7.5C12 8.03 11.899 8.541 11.696 9.031C11.493 9.521 11.203 9.953 10.828 10.328C10.729 10.428 10.611 10.478 10.475 10.478C10.339 10.478 10.221 10.428 10.121 10.328C10.022 10.229 9.972 10.111 9.972 9.975C9.972 9.839 10.022 9.721 10.121 9.621C10.403 9.34 10.619 9.016 10.772 8.648C10.924 8.281 11 7.898 11 7.5C11 7.102 10.924 6.719 10.772 6.352C10.619 5.984 10.403 5.66 10.121 5.379C10.022 5.279 9.972 5.161 9.972 5.025C9.972 4.889 10.022 4.771 10.121 4.672C10.219 4.574 10.337 4.525 10.475 4.525C10.613 4.525 10.731 4.574 10.828 4.672C11.204 5.047 11.493 5.479 11.696 5.969C11.899 6.459 12 6.97 12 7.5ZM7.856 7.144C7.952 7.241 8 7.359 8 7.5C8 7.641 7.952 7.759 7.856 7.856C7.759 7.952 7.641 8 7.5 8L1.5 8C1.359 8 1.241 7.952 1.144 7.856C1.048 7.759 1 7.641 1 7.5C1 7.359 1.048 7.241 1.144 7.144C1.241 7.048 1.359 7 1.5 7L7.5 7C7.641 7 7.759 7.048 7.856 7.144ZM1.144 10.856C1.048 10.759 1 10.641 1 10.5C1 10.359 1.048 10.241 1.144 10.144C1.241 10.048 1.359 10 1.5 10L4.5 10C4.641 10 4.759 10.048 4.856 10.144C4.952 10.241 5 10.359 5 10.5C5 10.641 4.952 10.759 4.856 10.856C4.759 10.952 4.641 11 4.5 11L1.5 11C1.359 11 1.241 10.952 1.144 10.856Z"/></svg>
```

### React

```tsx
// Gentleface "text-to-speech" (line-round), MIT. https://gentleface.com/icons/text-to-speech
import type { SVGProps } from 'react';

export function TextToSpeechIcon(props: SVGProps<SVGSVGElement>) {
  return (
    <svg xmlns="http://www.w3.org/2000/svg" width={16} height={16} viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" {...props}>
      <path d="M12.95 2.55C13.606 3.207 14.112 3.964 14.467 4.821C14.822 5.679 15 6.572 15 7.5C15 8.428 14.822 9.321 14.467 10.179C14.112 11.036 13.606 11.793 12.95 12.45C12.85 12.549 12.732 12.599 12.596 12.599C12.46 12.599 12.342 12.549 12.243 12.45C12.143 12.35 12.093 12.232 12.093 12.096C12.093 11.96 12.143 11.842 12.243 11.743C12.805 11.18 13.239 10.531 13.543 9.796C13.848 9.061 14 8.296 14 7.5C14 6.704 13.848 5.939 13.543 5.204C13.239 4.469 12.805 3.82 12.243 3.257C12.145 3.16 12.096 3.042 12.096 2.904C12.096 2.766 12.145 2.648 12.243 2.55C12.342 2.451 12.46 2.401 12.596 2.401C12.732 2.401 12.85 2.451 12.95 2.55ZM7.856 4.144C7.952 4.241 8 4.359 8 4.5C8 4.641 7.952 4.759 7.856 4.856C7.759 4.952 7.641 5 7.5 5L1.5 5C1.359 5 1.241 4.952 1.144 4.856C1.048 4.759 1 4.641 1 4.5C1 4.359 1.048 4.241 1.144 4.144C1.241 4.048 1.359 4 1.5 4L7.5 4C7.641 4 7.759 4.048 7.856 4.144ZM12 7.5C12 8.03 11.899 8.541 11.696 9.031C11.493 9.521 11.203 9.953 10.828 10.328C10.729 10.428 10.611 10.478 10.475 10.478C10.339 10.478 10.221 10.428 10.121 10.328C10.022 10.229 9.972 10.111 9.972 9.975C9.972 9.839 10.022 9.721 10.121 9.621C10.403 9.34 10.619 9.016 10.772 8.648C10.924 8.281 11 7.898 11 7.5C11 7.102 10.924 6.719 10.772 6.352C10.619 5.984 10.403 5.66 10.121 5.379C10.022 5.279 9.972 5.161 9.972 5.025C9.972 4.889 10.022 4.771 10.121 4.672C10.219 4.574 10.337 4.525 10.475 4.525C10.613 4.525 10.731 4.574 10.828 4.672C11.204 5.047 11.493 5.479 11.696 5.969C11.899 6.459 12 6.97 12 7.5ZM7.856 7.144C7.952 7.241 8 7.359 8 7.5C8 7.641 7.952 7.759 7.856 7.856C7.759 7.952 7.641 8 7.5 8L1.5 8C1.359 8 1.241 7.952 1.144 7.856C1.048 7.759 1 7.641 1 7.5C1 7.359 1.048 7.241 1.144 7.144C1.241 7.048 1.359 7 1.5 7L7.5 7C7.641 7 7.759 7.048 7.856 7.144ZM1.144 10.856C1.048 10.759 1 10.641 1 10.5C1 10.359 1.048 10.241 1.144 10.144C1.241 10.048 1.359 10 1.5 10L4.5 10C4.641 10 4.759 10.048 4.856 10.144C4.952 10.241 5 10.359 5 10.5C5 10.641 4.952 10.759 4.856 10.856C4.759 10.952 4.641 11 4.5 11L1.5 11C1.359 11 1.241 10.952 1.144 10.856Z" />
    </svg>
  );
}
```

### Vue

```vue
<!-- Gentleface "text-to-speech" (line-round), MIT. https://gentleface.com/icons/text-to-speech -->
<template>
  <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true">
    <path d="M12.95 2.55C13.606 3.207 14.112 3.964 14.467 4.821C14.822 5.679 15 6.572 15 7.5C15 8.428 14.822 9.321 14.467 10.179C14.112 11.036 13.606 11.793 12.95 12.45C12.85 12.549 12.732 12.599 12.596 12.599C12.46 12.599 12.342 12.549 12.243 12.45C12.143 12.35 12.093 12.232 12.093 12.096C12.093 11.96 12.143 11.842 12.243 11.743C12.805 11.18 13.239 10.531 13.543 9.796C13.848 9.061 14 8.296 14 7.5C14 6.704 13.848 5.939 13.543 5.204C13.239 4.469 12.805 3.82 12.243 3.257C12.145 3.16 12.096 3.042 12.096 2.904C12.096 2.766 12.145 2.648 12.243 2.55C12.342 2.451 12.46 2.401 12.596 2.401C12.732 2.401 12.85 2.451 12.95 2.55ZM7.856 4.144C7.952 4.241 8 4.359 8 4.5C8 4.641 7.952 4.759 7.856 4.856C7.759 4.952 7.641 5 7.5 5L1.5 5C1.359 5 1.241 4.952 1.144 4.856C1.048 4.759 1 4.641 1 4.5C1 4.359 1.048 4.241 1.144 4.144C1.241 4.048 1.359 4 1.5 4L7.5 4C7.641 4 7.759 4.048 7.856 4.144ZM12 7.5C12 8.03 11.899 8.541 11.696 9.031C11.493 9.521 11.203 9.953 10.828 10.328C10.729 10.428 10.611 10.478 10.475 10.478C10.339 10.478 10.221 10.428 10.121 10.328C10.022 10.229 9.972 10.111 9.972 9.975C9.972 9.839 10.022 9.721 10.121 9.621C10.403 9.34 10.619 9.016 10.772 8.648C10.924 8.281 11 7.898 11 7.5C11 7.102 10.924 6.719 10.772 6.352C10.619 5.984 10.403 5.66 10.121 5.379C10.022 5.279 9.972 5.161 9.972 5.025C9.972 4.889 10.022 4.771 10.121 4.672C10.219 4.574 10.337 4.525 10.475 4.525C10.613 4.525 10.731 4.574 10.828 4.672C11.204 5.047 11.493 5.479 11.696 5.969C11.899 6.459 12 6.97 12 7.5ZM7.856 7.144C7.952 7.241 8 7.359 8 7.5C8 7.641 7.952 7.759 7.856 7.856C7.759 7.952 7.641 8 7.5 8L1.5 8C1.359 8 1.241 7.952 1.144 7.856C1.048 7.759 1 7.641 1 7.5C1 7.359 1.048 7.241 1.144 7.144C1.241 7.048 1.359 7 1.5 7L7.5 7C7.641 7 7.759 7.048 7.856 7.144ZM1.144 10.856C1.048 10.759 1 10.641 1 10.5C1 10.359 1.048 10.241 1.144 10.144C1.241 10.048 1.359 10 1.5 10L4.5 10C4.641 10 4.759 10.048 4.856 10.144C4.952 10.241 5 10.359 5 10.5C5 10.641 4.952 10.759 4.856 10.856C4.759 10.952 4.641 11 4.5 11L1.5 11C1.359 11 1.241 10.952 1.144 10.856Z" />
  </svg>
</template>
```

### Svelte

```svelte
<!-- Gentleface "text-to-speech" (line-round), MIT. https://gentleface.com/icons/text-to-speech -->
<script>
  let props = $props();
</script>

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" {...props}>
  <path d="M12.95 2.55C13.606 3.207 14.112 3.964 14.467 4.821C14.822 5.679 15 6.572 15 7.5C15 8.428 14.822 9.321 14.467 10.179C14.112 11.036 13.606 11.793 12.95 12.45C12.85 12.549 12.732 12.599 12.596 12.599C12.46 12.599 12.342 12.549 12.243 12.45C12.143 12.35 12.093 12.232 12.093 12.096C12.093 11.96 12.143 11.842 12.243 11.743C12.805 11.18 13.239 10.531 13.543 9.796C13.848 9.061 14 8.296 14 7.5C14 6.704 13.848 5.939 13.543 5.204C13.239 4.469 12.805 3.82 12.243 3.257C12.145 3.16 12.096 3.042 12.096 2.904C12.096 2.766 12.145 2.648 12.243 2.55C12.342 2.451 12.46 2.401 12.596 2.401C12.732 2.401 12.85 2.451 12.95 2.55ZM7.856 4.144C7.952 4.241 8 4.359 8 4.5C8 4.641 7.952 4.759 7.856 4.856C7.759 4.952 7.641 5 7.5 5L1.5 5C1.359 5 1.241 4.952 1.144 4.856C1.048 4.759 1 4.641 1 4.5C1 4.359 1.048 4.241 1.144 4.144C1.241 4.048 1.359 4 1.5 4L7.5 4C7.641 4 7.759 4.048 7.856 4.144ZM12 7.5C12 8.03 11.899 8.541 11.696 9.031C11.493 9.521 11.203 9.953 10.828 10.328C10.729 10.428 10.611 10.478 10.475 10.478C10.339 10.478 10.221 10.428 10.121 10.328C10.022 10.229 9.972 10.111 9.972 9.975C9.972 9.839 10.022 9.721 10.121 9.621C10.403 9.34 10.619 9.016 10.772 8.648C10.924 8.281 11 7.898 11 7.5C11 7.102 10.924 6.719 10.772 6.352C10.619 5.984 10.403 5.66 10.121 5.379C10.022 5.279 9.972 5.161 9.972 5.025C9.972 4.889 10.022 4.771 10.121 4.672C10.219 4.574 10.337 4.525 10.475 4.525C10.613 4.525 10.731 4.574 10.828 4.672C11.204 5.047 11.493 5.479 11.696 5.969C11.899 6.459 12 6.97 12 7.5ZM7.856 7.144C7.952 7.241 8 7.359 8 7.5C8 7.641 7.952 7.759 7.856 7.856C7.759 7.952 7.641 8 7.5 8L1.5 8C1.359 8 1.241 7.952 1.144 7.856C1.048 7.759 1 7.641 1 7.5C1 7.359 1.048 7.241 1.144 7.144C1.241 7.048 1.359 7 1.5 7L7.5 7C7.641 7 7.759 7.048 7.856 7.144ZM1.144 10.856C1.048 10.759 1 10.641 1 10.5C1 10.359 1.048 10.241 1.144 10.144C1.241 10.048 1.359 10 1.5 10L4.5 10C4.641 10 4.759 10.048 4.856 10.144C4.952 10.241 5 10.359 5 10.5C5 10.641 4.952 10.759 4.856 10.856C4.759 10.952 4.641 11 4.5 11L1.5 11C1.359 11 1.241 10.952 1.144 10.856Z" />
</svg>
```

### HTML img

```html
<!-- Gentleface "text-to-speech" (line-round), MIT. https://gentleface.com/icons/text-to-speech. An <img> can't take currentColor: it draws black. Inline the SVG or use the CSS mask to color it. -->
<img src="https://gentleface.com/svg/line-round/16/text-to-speech.svg" width="16" height="16" alt="">
```

### CSS

```css
/* Gentleface "text-to-speech" (line-round), MIT. https://gentleface.com/icons/text-to-speech. Takes the text color. */
.icon-text-to-speech {
  display: inline-block;
  width: 16px;
  height: 16px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='currentColor'%3E%3Cpath d='M12.95 2.55C13.606 3.207 14.112 3.964 14.467 4.821C14.822 5.679 15 6.572 15 7.5C15 8.428 14.822 9.321 14.467 10.179C14.112 11.036 13.606 11.793 12.95 12.45C12.85 12.549 12.732 12.599 12.596 12.599C12.46 12.599 12.342 12.549 12.243 12.45C12.143 12.35 12.093 12.232 12.093 12.096C12.093 11.96 12.143 11.842 12.243 11.743C12.805 11.18 13.239 10.531 13.543 9.796C13.848 9.061 14 8.296 14 7.5C14 6.704 13.848 5.939 13.543 5.204C13.239 4.469 12.805 3.82 12.243 3.257C12.145 3.16 12.096 3.042 12.096 2.904C12.096 2.766 12.145 2.648 12.243 2.55C12.342 2.451 12.46 2.401 12.596 2.401C12.732 2.401 12.85 2.451 12.95 2.55ZM7.856 4.144C7.952 4.241 8 4.359 8 4.5C8 4.641 7.952 4.759 7.856 4.856C7.759 4.952 7.641 5 7.5 5L1.5 5C1.359 5 1.241 4.952 1.144 4.856C1.048 4.759 1 4.641 1 4.5C1 4.359 1.048 4.241 1.144 4.144C1.241 4.048 1.359 4 1.5 4L7.5 4C7.641 4 7.759 4.048 7.856 4.144ZM12 7.5C12 8.03 11.899 8.541 11.696 9.031C11.493 9.521 11.203 9.953 10.828 10.328C10.729 10.428 10.611 10.478 10.475 10.478C10.339 10.478 10.221 10.428 10.121 10.328C10.022 10.229 9.972 10.111 9.972 9.975C9.972 9.839 10.022 9.721 10.121 9.621C10.403 9.34 10.619 9.016 10.772 8.648C10.924 8.281 11 7.898 11 7.5C11 7.102 10.924 6.719 10.772 6.352C10.619 5.984 10.403 5.66 10.121 5.379C10.022 5.279 9.972 5.161 9.972 5.025C9.972 4.889 10.022 4.771 10.121 4.672C10.219 4.574 10.337 4.525 10.475 4.525C10.613 4.525 10.731 4.574 10.828 4.672C11.204 5.047 11.493 5.479 11.696 5.969C11.899 6.459 12 6.97 12 7.5ZM7.856 7.144C7.952 7.241 8 7.359 8 7.5C8 7.641 7.952 7.759 7.856 7.856C7.759 7.952 7.641 8 7.5 8L1.5 8C1.359 8 1.241 7.952 1.144 7.856C1.048 7.759 1 7.641 1 7.5C1 7.359 1.048 7.241 1.144 7.144C1.241 7.048 1.359 7 1.5 7L7.5 7C7.641 7 7.759 7.048 7.856 7.144ZM1.144 10.856C1.048 10.759 1 10.641 1 10.5C1 10.359 1.048 10.241 1.144 10.144C1.241 10.048 1.359 10 1.5 10L4.5 10C4.641 10 4.759 10.048 4.856 10.144C4.952 10.241 5 10.359 5 10.5C5 10.641 4.952 10.759 4.856 10.856C4.759 10.952 4.641 11 4.5 11L1.5 11C1.359 11 1.241 10.952 1.144 10.856Z'/%3E%3C/svg%3E") center / 16px 16px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='currentColor'%3E%3Cpath d='M12.95 2.55C13.606 3.207 14.112 3.964 14.467 4.821C14.822 5.679 15 6.572 15 7.5C15 8.428 14.822 9.321 14.467 10.179C14.112 11.036 13.606 11.793 12.95 12.45C12.85 12.549 12.732 12.599 12.596 12.599C12.46 12.599 12.342 12.549 12.243 12.45C12.143 12.35 12.093 12.232 12.093 12.096C12.093 11.96 12.143 11.842 12.243 11.743C12.805 11.18 13.239 10.531 13.543 9.796C13.848 9.061 14 8.296 14 7.5C14 6.704 13.848 5.939 13.543 5.204C13.239 4.469 12.805 3.82 12.243 3.257C12.145 3.16 12.096 3.042 12.096 2.904C12.096 2.766 12.145 2.648 12.243 2.55C12.342 2.451 12.46 2.401 12.596 2.401C12.732 2.401 12.85 2.451 12.95 2.55ZM7.856 4.144C7.952 4.241 8 4.359 8 4.5C8 4.641 7.952 4.759 7.856 4.856C7.759 4.952 7.641 5 7.5 5L1.5 5C1.359 5 1.241 4.952 1.144 4.856C1.048 4.759 1 4.641 1 4.5C1 4.359 1.048 4.241 1.144 4.144C1.241 4.048 1.359 4 1.5 4L7.5 4C7.641 4 7.759 4.048 7.856 4.144ZM12 7.5C12 8.03 11.899 8.541 11.696 9.031C11.493 9.521 11.203 9.953 10.828 10.328C10.729 10.428 10.611 10.478 10.475 10.478C10.339 10.478 10.221 10.428 10.121 10.328C10.022 10.229 9.972 10.111 9.972 9.975C9.972 9.839 10.022 9.721 10.121 9.621C10.403 9.34 10.619 9.016 10.772 8.648C10.924 8.281 11 7.898 11 7.5C11 7.102 10.924 6.719 10.772 6.352C10.619 5.984 10.403 5.66 10.121 5.379C10.022 5.279 9.972 5.161 9.972 5.025C9.972 4.889 10.022 4.771 10.121 4.672C10.219 4.574 10.337 4.525 10.475 4.525C10.613 4.525 10.731 4.574 10.828 4.672C11.204 5.047 11.493 5.479 11.696 5.969C11.899 6.459 12 6.97 12 7.5ZM7.856 7.144C7.952 7.241 8 7.359 8 7.5C8 7.641 7.952 7.759 7.856 7.856C7.759 7.952 7.641 8 7.5 8L1.5 8C1.359 8 1.241 7.952 1.144 7.856C1.048 7.759 1 7.641 1 7.5C1 7.359 1.048 7.241 1.144 7.144C1.241 7.048 1.359 7 1.5 7L7.5 7C7.641 7 7.759 7.048 7.856 7.144ZM1.144 10.856C1.048 10.759 1 10.641 1 10.5C1 10.359 1.048 10.241 1.144 10.144C1.241 10.048 1.359 10 1.5 10L4.5 10C4.641 10 4.759 10.048 4.856 10.144C4.952 10.241 5 10.359 5 10.5C5 10.641 4.952 10.759 4.856 10.856C4.759 10.952 4.641 11 4.5 11L1.5 11C1.359 11 1.241 10.952 1.144 10.856Z'/%3E%3C/svg%3E") center / 16px 16px no-repeat;
}
```

### Data URL

```text
data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='currentColor'%3E%3Cpath d='M12.95 2.55C13.606 3.207 14.112 3.964 14.467 4.821C14.822 5.679 15 6.572 15 7.5C15 8.428 14.822 9.321 14.467 10.179C14.112 11.036 13.606 11.793 12.95 12.45C12.85 12.549 12.732 12.599 12.596 12.599C12.46 12.599 12.342 12.549 12.243 12.45C12.143 12.35 12.093 12.232 12.093 12.096C12.093 11.96 12.143 11.842 12.243 11.743C12.805 11.18 13.239 10.531 13.543 9.796C13.848 9.061 14 8.296 14 7.5C14 6.704 13.848 5.939 13.543 5.204C13.239 4.469 12.805 3.82 12.243 3.257C12.145 3.16 12.096 3.042 12.096 2.904C12.096 2.766 12.145 2.648 12.243 2.55C12.342 2.451 12.46 2.401 12.596 2.401C12.732 2.401 12.85 2.451 12.95 2.55ZM7.856 4.144C7.952 4.241 8 4.359 8 4.5C8 4.641 7.952 4.759 7.856 4.856C7.759 4.952 7.641 5 7.5 5L1.5 5C1.359 5 1.241 4.952 1.144 4.856C1.048 4.759 1 4.641 1 4.5C1 4.359 1.048 4.241 1.144 4.144C1.241 4.048 1.359 4 1.5 4L7.5 4C7.641 4 7.759 4.048 7.856 4.144ZM12 7.5C12 8.03 11.899 8.541 11.696 9.031C11.493 9.521 11.203 9.953 10.828 10.328C10.729 10.428 10.611 10.478 10.475 10.478C10.339 10.478 10.221 10.428 10.121 10.328C10.022 10.229 9.972 10.111 9.972 9.975C9.972 9.839 10.022 9.721 10.121 9.621C10.403 9.34 10.619 9.016 10.772 8.648C10.924 8.281 11 7.898 11 7.5C11 7.102 10.924 6.719 10.772 6.352C10.619 5.984 10.403 5.66 10.121 5.379C10.022 5.279 9.972 5.161 9.972 5.025C9.972 4.889 10.022 4.771 10.121 4.672C10.219 4.574 10.337 4.525 10.475 4.525C10.613 4.525 10.731 4.574 10.828 4.672C11.204 5.047 11.493 5.479 11.696 5.969C11.899 6.459 12 6.97 12 7.5ZM7.856 7.144C7.952 7.241 8 7.359 8 7.5C8 7.641 7.952 7.759 7.856 7.856C7.759 7.952 7.641 8 7.5 8L1.5 8C1.359 8 1.241 7.952 1.144 7.856C1.048 7.759 1 7.641 1 7.5C1 7.359 1.048 7.241 1.144 7.144C1.241 7.048 1.359 7 1.5 7L7.5 7C7.641 7 7.759 7.048 7.856 7.144ZM1.144 10.856C1.048 10.759 1 10.641 1 10.5C1 10.359 1.048 10.241 1.144 10.144C1.241 10.048 1.359 10 1.5 10L4.5 10C4.641 10 4.759 10.048 4.856 10.144C4.952 10.241 5 10.359 5 10.5C5 10.641 4.952 10.759 4.856 10.856C4.759 10.952 4.641 11 4.5 11L1.5 11C1.359 11 1.241 10.952 1.144 10.856Z'/%3E%3C/svg%3E
```

### Sprite

```html
<!-- Gentleface "text-to-speech" (line-round), MIT. https://gentleface.com/icons/text-to-speech
     Every icon of this style in one file: https://gentleface.com/sprite/line-round.svg
     Serve it from your own origin: <use> does not load from another origin. -->
<svg width="16" height="16" aria-hidden="true"><use href="/sprite/line-round.svg#text-to-speech"/></svg>
```

### SwiftUI

```swift
// Gentleface "text-to-speech" (line-round), MIT. https://gentleface.com/icons/text-to-speech
import SwiftUI

struct TextToSpeechIcon: Shape {
    func path(in rect: CGRect) -> Path {
        var p = Path()
        p.move(to: CGPoint(x: 12.95, y: 2.55))
        p.addCurve(to: CGPoint(x: 14.467, y: 4.821), control1: CGPoint(x: 13.606, y: 3.207), control2: CGPoint(x: 14.112, y: 3.964))
        p.addCurve(to: CGPoint(x: 15, y: 7.5), control1: CGPoint(x: 14.822, y: 5.679), control2: CGPoint(x: 15, y: 6.572))
        p.addCurve(to: CGPoint(x: 14.467, y: 10.179), control1: CGPoint(x: 15, y: 8.428), control2: CGPoint(x: 14.822, y: 9.321))
        p.addCurve(to: CGPoint(x: 12.95, y: 12.45), control1: CGPoint(x: 14.112, y: 11.036), control2: CGPoint(x: 13.606, y: 11.793))
        p.addCurve(to: CGPoint(x: 12.596, y: 12.599), control1: CGPoint(x: 12.85, y: 12.549), control2: CGPoint(x: 12.732, y: 12.599))
        p.addCurve(to: CGPoint(x: 12.243, y: 12.45), control1: CGPoint(x: 12.46, y: 12.599), control2: CGPoint(x: 12.342, y: 12.549))
        p.addCurve(to: CGPoint(x: 12.093, y: 12.096), control1: CGPoint(x: 12.143, y: 12.35), control2: CGPoint(x: 12.093, y: 12.232))
        p.addCurve(to: CGPoint(x: 12.243, y: 11.743), control1: CGPoint(x: 12.093, y: 11.96), control2: CGPoint(x: 12.143, y: 11.842))
        p.addCurve(to: CGPoint(x: 13.543, y: 9.796), control1: CGPoint(x: 12.805, y: 11.18), control2: CGPoint(x: 13.239, y: 10.531))
        p.addCurve(to: CGPoint(x: 14, y: 7.5), control1: CGPoint(x: 13.848, y: 9.061), control2: CGPoint(x: 14, y: 8.296))
        p.addCurve(to: CGPoint(x: 13.543, y: 5.204), control1: CGPoint(x: 14, y: 6.704), control2: CGPoint(x: 13.848, y: 5.939))
        p.addCurve(to: CGPoint(x: 12.243, y: 3.257), control1: CGPoint(x: 13.239, y: 4.469), control2: CGPoint(x: 12.805, y: 3.82))
        p.addCurve(to: CGPoint(x: 12.096, y: 2.904), control1: CGPoint(x: 12.145, y: 3.16), control2: CGPoint(x: 12.096, y: 3.042))
        p.addCurve(to: CGPoint(x: 12.243, y: 2.55), control1: CGPoint(x: 12.096, y: 2.766), control2: CGPoint(x: 12.145, y: 2.648))
        p.addCurve(to: CGPoint(x: 12.596, y: 2.401), control1: CGPoint(x: 12.342, y: 2.451), control2: CGPoint(x: 12.46, y: 2.401))
        p.addCurve(to: CGPoint(x: 12.95, y: 2.55), control1: CGPoint(x: 12.732, y: 2.401), control2: CGPoint(x: 12.85, y: 2.451))
        p.closeSubpath()
        p.move(to: CGPoint(x: 7.856, y: 4.144))
        p.addCurve(to: CGPoint(x: 8, y: 4.5), control1: CGPoint(x: 7.952, y: 4.241), control2: CGPoint(x: 8, y: 4.359))
        p.addCurve(to: CGPoint(x: 7.856, y: 4.856), control1: CGPoint(x: 8, y: 4.641), control2: CGPoint(x: 7.952, y: 4.759))
        p.addCurve(to: CGPoint(x: 7.5, y: 5), control1: CGPoint(x: 7.759, y: 4.952), control2: CGPoint(x: 7.641, y: 5))
        p.addLine(to: CGPoint(x: 1.5, y: 5))
        p.addCurve(to: CGPoint(x: 1.144, y: 4.856), control1: CGPoint(x: 1.359, y: 5), control2: CGPoint(x: 1.241, y: 4.952))
        p.addCurve(to: CGPoint(x: 1, y: 4.5), control1: CGPoint(x: 1.048, y: 4.759), control2: CGPoint(x: 1, y: 4.641))
        p.addCurve(to: CGPoint(x: 1.144, y: 4.144), control1: CGPoint(x: 1, y: 4.359), control2: CGPoint(x: 1.048, y: 4.241))
        p.addCurve(to: CGPoint(x: 1.5, y: 4), control1: CGPoint(x: 1.241, y: 4.048), control2: CGPoint(x: 1.359, y: 4))
        p.addLine(to: CGPoint(x: 7.5, y: 4))
        p.addCurve(to: CGPoint(x: 7.856, y: 4.144), control1: CGPoint(x: 7.641, y: 4), control2: CGPoint(x: 7.759, y: 4.048))
        p.closeSubpath()
        p.move(to: CGPoint(x: 12, y: 7.5))
        p.addCurve(to: CGPoint(x: 11.696, y: 9.031), control1: CGPoint(x: 12, y: 8.03), control2: CGPoint(x: 11.899, y: 8.541))
        p.addCurve(to: CGPoint(x: 10.828, y: 10.328), control1: CGPoint(x: 11.493, y: 9.521), control2: CGPoint(x: 11.203, y: 9.953))
        p.addCurve(to: CGPoint(x: 10.475, y: 10.478), control1: CGPoint(x: 10.729, y: 10.428), control2: CGPoint(x: 10.611, y: 10.478))
        p.addCurve(to: CGPoint(x: 10.121, y: 10.328), control1: CGPoint(x: 10.339, y: 10.478), control2: CGPoint(x: 10.221, y: 10.428))
        p.addCurve(to: CGPoint(x: 9.972, y: 9.975), control1: CGPoint(x: 10.022, y: 10.229), control2: CGPoint(x: 9.972, y: 10.111))
        p.addCurve(to: CGPoint(x: 10.121, y: 9.621), control1: CGPoint(x: 9.972, y: 9.839), control2: CGPoint(x: 10.022, y: 9.721))
        p.addCurve(to: CGPoint(x: 10.772, y: 8.648), control1: CGPoint(x: 10.403, y: 9.34), control2: CGPoint(x: 10.619, y: 9.016))
        p.addCurve(to: CGPoint(x: 11, y: 7.5), control1: CGPoint(x: 10.924, y: 8.281), control2: CGPoint(x: 11, y: 7.898))
        p.addCurve(to: CGPoint(x: 10.772, y: 6.352), control1: CGPoint(x: 11, y: 7.102), control2: CGPoint(x: 10.924, y: 6.719))
        p.addCurve(to: CGPoint(x: 10.121, y: 5.379), control1: CGPoint(x: 10.619, y: 5.984), control2: CGPoint(x: 10.403, y: 5.66))
        p.addCurve(to: CGPoint(x: 9.972, y: 5.025), control1: CGPoint(x: 10.022, y: 5.279), control2: CGPoint(x: 9.972, y: 5.161))
        p.addCurve(to: CGPoint(x: 10.121, y: 4.672), control1: CGPoint(x: 9.972, y: 4.889), control2: CGPoint(x: 10.022, y: 4.771))
        p.addCurve(to: CGPoint(x: 10.475, y: 4.525), control1: CGPoint(x: 10.219, y: 4.574), control2: CGPoint(x: 10.337, y: 4.525))
        p.addCurve(to: CGPoint(x: 10.828, y: 4.672), control1: CGPoint(x: 10.613, y: 4.525), control2: CGPoint(x: 10.731, y: 4.574))
        p.addCurve(to: CGPoint(x: 11.696, y: 5.969), control1: CGPoint(x: 11.204, y: 5.047), control2: CGPoint(x: 11.493, y: 5.479))
        p.addCurve(to: CGPoint(x: 12, y: 7.5), control1: CGPoint(x: 11.899, y: 6.459), control2: CGPoint(x: 12, y: 6.97))
        p.closeSubpath()
        p.move(to: CGPoint(x: 7.856, y: 7.144))
        p.addCurve(to: CGPoint(x: 8, y: 7.5), control1: CGPoint(x: 7.952, y: 7.241), control2: CGPoint(x: 8, y: 7.359))
        p.addCurve(to: CGPoint(x: 7.856, y: 7.856), control1: CGPoint(x: 8, y: 7.641), control2: CGPoint(x: 7.952, y: 7.759))
        p.addCurve(to: CGPoint(x: 7.5, y: 8), control1: CGPoint(x: 7.759, y: 7.952), control2: CGPoint(x: 7.641, y: 8))
        p.addLine(to: CGPoint(x: 1.5, y: 8))
        p.addCurve(to: CGPoint(x: 1.144, y: 7.856), control1: CGPoint(x: 1.359, y: 8), control2: CGPoint(x: 1.241, y: 7.952))
        p.addCurve(to: CGPoint(x: 1, y: 7.5), control1: CGPoint(x: 1.048, y: 7.759), control2: CGPoint(x: 1, y: 7.641))
        p.addCurve(to: CGPoint(x: 1.144, y: 7.144), control1: CGPoint(x: 1, y: 7.359), control2: CGPoint(x: 1.048, y: 7.241))
        p.addCurve(to: CGPoint(x: 1.5, y: 7), control1: CGPoint(x: 1.241, y: 7.048), control2: CGPoint(x: 1.359, y: 7))
        p.addLine(to: CGPoint(x: 7.5, y: 7))
        p.addCurve(to: CGPoint(x: 7.856, y: 7.144), control1: CGPoint(x: 7.641, y: 7), control2: CGPoint(x: 7.759, y: 7.048))
        p.closeSubpath()
        p.move(to: CGPoint(x: 1.144, y: 10.856))
        p.addCurve(to: CGPoint(x: 1, y: 10.5), control1: CGPoint(x: 1.048, y: 10.759), control2: CGPoint(x: 1, y: 10.641))
        p.addCurve(to: CGPoint(x: 1.144, y: 10.144), control1: CGPoint(x: 1, y: 10.359), control2: CGPoint(x: 1.048, y: 10.241))
        p.addCurve(to: CGPoint(x: 1.5, y: 10), control1: CGPoint(x: 1.241, y: 10.048), control2: CGPoint(x: 1.359, y: 10))
        p.addLine(to: CGPoint(x: 4.5, y: 10))
        p.addCurve(to: CGPoint(x: 4.856, y: 10.144), control1: CGPoint(x: 4.641, y: 10), control2: CGPoint(x: 4.759, y: 10.048))
        p.addCurve(to: CGPoint(x: 5, y: 10.5), control1: CGPoint(x: 4.952, y: 10.241), control2: CGPoint(x: 5, y: 10.359))
        p.addCurve(to: CGPoint(x: 4.856, y: 10.856), control1: CGPoint(x: 5, y: 10.641), control2: CGPoint(x: 4.952, y: 10.759))
        p.addCurve(to: CGPoint(x: 4.5, y: 11), control1: CGPoint(x: 4.759, y: 10.952), control2: CGPoint(x: 4.641, y: 11))
        p.addLine(to: CGPoint(x: 1.5, y: 11))
        p.addCurve(to: CGPoint(x: 1.144, y: 10.856), control1: CGPoint(x: 1.359, y: 11), control2: CGPoint(x: 1.241, y: 10.952))
        p.closeSubpath()
        return p.applying(CGAffineTransform(scaleX: rect.width / 16, y: rect.height / 16))
    }
}

// TextToSpeechIcon().frame(width: 16, height: 16) fills with the foreground style. Keep it on whole points to stay crisp.
```

### Compose

```kotlin
// Gentleface "text-to-speech" (line-round), MIT. https://gentleface.com/icons/text-to-speech
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.SolidColor
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.graphics.vector.addPathNodes
import androidx.compose.ui.unit.dp

val TextToSpeechIcon: ImageVector by lazy {
    ImageVector.Builder(
        name = "text-to-speech", defaultWidth = 16.dp, defaultHeight = 16.dp,
        viewportWidth = 16f, viewportHeight = 16f,
    ).addPath(
        pathData = addPathNodes("M12.95 2.55C13.606 3.207 14.112 3.964 14.467 4.821C14.822 5.679 15 6.572 15 7.5C15 8.428 14.822 9.321 14.467 10.179C14.112 11.036 13.606 11.793 12.95 12.45C12.85 12.549 12.732 12.599 12.596 12.599C12.46 12.599 12.342 12.549 12.243 12.45C12.143 12.35 12.093 12.232 12.093 12.096C12.093 11.96 12.143 11.842 12.243 11.743C12.805 11.18 13.239 10.531 13.543 9.796C13.848 9.061 14 8.296 14 7.5C14 6.704 13.848 5.939 13.543 5.204C13.239 4.469 12.805 3.82 12.243 3.257C12.145 3.16 12.096 3.042 12.096 2.904C12.096 2.766 12.145 2.648 12.243 2.55C12.342 2.451 12.46 2.401 12.596 2.401C12.732 2.401 12.85 2.451 12.95 2.55ZM7.856 4.144C7.952 4.241 8 4.359 8 4.5C8 4.641 7.952 4.759 7.856 4.856C7.759 4.952 7.641 5 7.5 5L1.5 5C1.359 5 1.241 4.952 1.144 4.856C1.048 4.759 1 4.641 1 4.5C1 4.359 1.048 4.241 1.144 4.144C1.241 4.048 1.359 4 1.5 4L7.5 4C7.641 4 7.759 4.048 7.856 4.144ZM12 7.5C12 8.03 11.899 8.541 11.696 9.031C11.493 9.521 11.203 9.953 10.828 10.328C10.729 10.428 10.611 10.478 10.475 10.478C10.339 10.478 10.221 10.428 10.121 10.328C10.022 10.229 9.972 10.111 9.972 9.975C9.972 9.839 10.022 9.721 10.121 9.621C10.403 9.34 10.619 9.016 10.772 8.648C10.924 8.281 11 7.898 11 7.5C11 7.102 10.924 6.719 10.772 6.352C10.619 5.984 10.403 5.66 10.121 5.379C10.022 5.279 9.972 5.161 9.972 5.025C9.972 4.889 10.022 4.771 10.121 4.672C10.219 4.574 10.337 4.525 10.475 4.525C10.613 4.525 10.731 4.574 10.828 4.672C11.204 5.047 11.493 5.479 11.696 5.969C11.899 6.459 12 6.97 12 7.5ZM7.856 7.144C7.952 7.241 8 7.359 8 7.5C8 7.641 7.952 7.759 7.856 7.856C7.759 7.952 7.641 8 7.5 8L1.5 8C1.359 8 1.241 7.952 1.144 7.856C1.048 7.759 1 7.641 1 7.5C1 7.359 1.048 7.241 1.144 7.144C1.241 7.048 1.359 7 1.5 7L7.5 7C7.641 7 7.759 7.048 7.856 7.144ZM1.144 10.856C1.048 10.759 1 10.641 1 10.5C1 10.359 1.048 10.241 1.144 10.144C1.241 10.048 1.359 10 1.5 10L4.5 10C4.641 10 4.759 10.048 4.856 10.144C4.952 10.241 5 10.359 5 10.5C5 10.641 4.952 10.759 4.856 10.856C4.759 10.952 4.641 11 4.5 11L1.5 11C1.359 11 1.241 10.952 1.144 10.856Z"),
        fill = SolidColor(Color.Black),
    ).build()
}

// Icon(TextToSpeechIcon, contentDescription = null) tints it with LocalContentColor.
```

### Android XML

```xml
<!-- res/drawable/ic_text_to_speech.xml · Gentleface "text-to-speech" (line-round), MIT. https://gentleface.com/icons/text-to-speech -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="16dp"
    android:height="16dp"
    android:viewportWidth="16"
    android:viewportHeight="16"
    android:tint="?attr/colorControlNormal">
  <path
      android:fillColor="@android:color/white"
      android:pathData="M12.95 2.55C13.606 3.207 14.112 3.964 14.467 4.821C14.822 5.679 15 6.572 15 7.5C15 8.428 14.822 9.321 14.467 10.179C14.112 11.036 13.606 11.793 12.95 12.45C12.85 12.549 12.732 12.599 12.596 12.599C12.46 12.599 12.342 12.549 12.243 12.45C12.143 12.35 12.093 12.232 12.093 12.096C12.093 11.96 12.143 11.842 12.243 11.743C12.805 11.18 13.239 10.531 13.543 9.796C13.848 9.061 14 8.296 14 7.5C14 6.704 13.848 5.939 13.543 5.204C13.239 4.469 12.805 3.82 12.243 3.257C12.145 3.16 12.096 3.042 12.096 2.904C12.096 2.766 12.145 2.648 12.243 2.55C12.342 2.451 12.46 2.401 12.596 2.401C12.732 2.401 12.85 2.451 12.95 2.55ZM7.856 4.144C7.952 4.241 8 4.359 8 4.5C8 4.641 7.952 4.759 7.856 4.856C7.759 4.952 7.641 5 7.5 5L1.5 5C1.359 5 1.241 4.952 1.144 4.856C1.048 4.759 1 4.641 1 4.5C1 4.359 1.048 4.241 1.144 4.144C1.241 4.048 1.359 4 1.5 4L7.5 4C7.641 4 7.759 4.048 7.856 4.144ZM12 7.5C12 8.03 11.899 8.541 11.696 9.031C11.493 9.521 11.203 9.953 10.828 10.328C10.729 10.428 10.611 10.478 10.475 10.478C10.339 10.478 10.221 10.428 10.121 10.328C10.022 10.229 9.972 10.111 9.972 9.975C9.972 9.839 10.022 9.721 10.121 9.621C10.403 9.34 10.619 9.016 10.772 8.648C10.924 8.281 11 7.898 11 7.5C11 7.102 10.924 6.719 10.772 6.352C10.619 5.984 10.403 5.66 10.121 5.379C10.022 5.279 9.972 5.161 9.972 5.025C9.972 4.889 10.022 4.771 10.121 4.672C10.219 4.574 10.337 4.525 10.475 4.525C10.613 4.525 10.731 4.574 10.828 4.672C11.204 5.047 11.493 5.479 11.696 5.969C11.899 6.459 12 6.97 12 7.5ZM7.856 7.144C7.952 7.241 8 7.359 8 7.5C8 7.641 7.952 7.759 7.856 7.856C7.759 7.952 7.641 8 7.5 8L1.5 8C1.359 8 1.241 7.952 1.144 7.856C1.048 7.759 1 7.641 1 7.5C1 7.359 1.048 7.241 1.144 7.144C1.241 7.048 1.359 7 1.5 7L7.5 7C7.641 7 7.759 7.048 7.856 7.144ZM1.144 10.856C1.048 10.759 1 10.641 1 10.5C1 10.359 1.048 10.241 1.144 10.144C1.241 10.048 1.359 10 1.5 10L4.5 10C4.641 10 4.759 10.048 4.856 10.144C4.952 10.241 5 10.359 5 10.5C5 10.641 4.952 10.759 4.856 10.856C4.759 10.952 4.641 11 4.5 11L1.5 11C1.359 11 1.241 10.952 1.144 10.856Z"/>
</vector>
```

### Flutter

```dart
// Gentleface "text-to-speech" (line-round), MIT. https://gentleface.com/icons/text-to-speech
import 'package:flutter/widgets.dart';

class TextToSpeechIcon extends StatelessWidget {
  const TextToSpeechIcon({super.key, this.size = 16, this.color});
  final double size;
  final Color? color;

  @override
  Widget build(BuildContext context) => CustomPaint(
        size: Size.square(size),
        painter: _TextToSpeechIconPainter(color ?? IconTheme.of(context).color ?? const Color(0xFF000000)),
      );
}

class _TextToSpeechIconPainter extends CustomPainter {
  _TextToSpeechIconPainter(this.color);
  final Color color;

  @override
  void paint(Canvas canvas, Size size) {
    canvas.scale(size.width / 16, size.height / 16);
    final p = Path()
      ..moveTo(12.95, 2.55)
      ..cubicTo(13.606, 3.207, 14.112, 3.964, 14.467, 4.821)
      ..cubicTo(14.822, 5.679, 15, 6.572, 15, 7.5)
      ..cubicTo(15, 8.428, 14.822, 9.321, 14.467, 10.179)
      ..cubicTo(14.112, 11.036, 13.606, 11.793, 12.95, 12.45)
      ..cubicTo(12.85, 12.549, 12.732, 12.599, 12.596, 12.599)
      ..cubicTo(12.46, 12.599, 12.342, 12.549, 12.243, 12.45)
      ..cubicTo(12.143, 12.35, 12.093, 12.232, 12.093, 12.096)
      ..cubicTo(12.093, 11.96, 12.143, 11.842, 12.243, 11.743)
      ..cubicTo(12.805, 11.18, 13.239, 10.531, 13.543, 9.796)
      ..cubicTo(13.848, 9.061, 14, 8.296, 14, 7.5)
      ..cubicTo(14, 6.704, 13.848, 5.939, 13.543, 5.204)
      ..cubicTo(13.239, 4.469, 12.805, 3.82, 12.243, 3.257)
      ..cubicTo(12.145, 3.16, 12.096, 3.042, 12.096, 2.904)
      ..cubicTo(12.096, 2.766, 12.145, 2.648, 12.243, 2.55)
      ..cubicTo(12.342, 2.451, 12.46, 2.401, 12.596, 2.401)
      ..cubicTo(12.732, 2.401, 12.85, 2.451, 12.95, 2.55)
      ..close()
      ..moveTo(7.856, 4.144)
      ..cubicTo(7.952, 4.241, 8, 4.359, 8, 4.5)
      ..cubicTo(8, 4.641, 7.952, 4.759, 7.856, 4.856)
      ..cubicTo(7.759, 4.952, 7.641, 5, 7.5, 5)
      ..lineTo(1.5, 5)
      ..cubicTo(1.359, 5, 1.241, 4.952, 1.144, 4.856)
      ..cubicTo(1.048, 4.759, 1, 4.641, 1, 4.5)
      ..cubicTo(1, 4.359, 1.048, 4.241, 1.144, 4.144)
      ..cubicTo(1.241, 4.048, 1.359, 4, 1.5, 4)
      ..lineTo(7.5, 4)
      ..cubicTo(7.641, 4, 7.759, 4.048, 7.856, 4.144)
      ..close()
      ..moveTo(12, 7.5)
      ..cubicTo(12, 8.03, 11.899, 8.541, 11.696, 9.031)
      ..cubicTo(11.493, 9.521, 11.203, 9.953, 10.828, 10.328)
      ..cubicTo(10.729, 10.428, 10.611, 10.478, 10.475, 10.478)
      ..cubicTo(10.339, 10.478, 10.221, 10.428, 10.121, 10.328)
      ..cubicTo(10.022, 10.229, 9.972, 10.111, 9.972, 9.975)
      ..cubicTo(9.972, 9.839, 10.022, 9.721, 10.121, 9.621)
      ..cubicTo(10.403, 9.34, 10.619, 9.016, 10.772, 8.648)
      ..cubicTo(10.924, 8.281, 11, 7.898, 11, 7.5)
      ..cubicTo(11, 7.102, 10.924, 6.719, 10.772, 6.352)
      ..cubicTo(10.619, 5.984, 10.403, 5.66, 10.121, 5.379)
      ..cubicTo(10.022, 5.279, 9.972, 5.161, 9.972, 5.025)
      ..cubicTo(9.972, 4.889, 10.022, 4.771, 10.121, 4.672)
      ..cubicTo(10.219, 4.574, 10.337, 4.525, 10.475, 4.525)
      ..cubicTo(10.613, 4.525, 10.731, 4.574, 10.828, 4.672)
      ..cubicTo(11.204, 5.047, 11.493, 5.479, 11.696, 5.969)
      ..cubicTo(11.899, 6.459, 12, 6.97, 12, 7.5)
      ..close()
      ..moveTo(7.856, 7.144)
      ..cubicTo(7.952, 7.241, 8, 7.359, 8, 7.5)
      ..cubicTo(8, 7.641, 7.952, 7.759, 7.856, 7.856)
      ..cubicTo(7.759, 7.952, 7.641, 8, 7.5, 8)
      ..lineTo(1.5, 8)
      ..cubicTo(1.359, 8, 1.241, 7.952, 1.144, 7.856)
      ..cubicTo(1.048, 7.759, 1, 7.641, 1, 7.5)
      ..cubicTo(1, 7.359, 1.048, 7.241, 1.144, 7.144)
      ..cubicTo(1.241, 7.048, 1.359, 7, 1.5, 7)
      ..lineTo(7.5, 7)
      ..cubicTo(7.641, 7, 7.759, 7.048, 7.856, 7.144)
      ..close()
      ..moveTo(1.144, 10.856)
      ..cubicTo(1.048, 10.759, 1, 10.641, 1, 10.5)
      ..cubicTo(1, 10.359, 1.048, 10.241, 1.144, 10.144)
      ..cubicTo(1.241, 10.048, 1.359, 10, 1.5, 10)
      ..lineTo(4.5, 10)
      ..cubicTo(4.641, 10, 4.759, 10.048, 4.856, 10.144)
      ..cubicTo(4.952, 10.241, 5, 10.359, 5, 10.5)
      ..cubicTo(5, 10.641, 4.952, 10.759, 4.856, 10.856)
      ..cubicTo(4.759, 10.952, 4.641, 11, 4.5, 11)
      ..lineTo(1.5, 11)
      ..cubicTo(1.359, 11, 1.241, 10.952, 1.144, 10.856)
      ..close();
    canvas.drawPath(p, Paint()..color = color);
  }

  @override
  bool shouldRepaint(_TextToSpeechIconPainter old) => old.color != color;
}
```
