Skip to content

xenova/phonemizer.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Phonemizer.js

Simple text to phones converter using eSpeak NG.

Basic usage

import { phonemize } from "phonemizer";

const phonemes = await phonemize("Hello world.");
console.log(phonemes); // ['həlˈəʊ wˈɜːld']

Alternatively, you can load the library from a CDN as follows:

<script type="module">
  import { phonemize } from "https://cdn.jsdelivr.net/npm/phonemizer";

  const phonemes = await phonemize("Hello world.");
  console.log(phonemes); // ['həlˈəʊ wˈɜːld']
</script>
const { phonemize } = require("phonemizer");

(async () => {
  const phonemes = await phonemize("Hello world.");
  console.log(phonemes); // ['həlˈəʊ wˈɜːld']
})();
CommonJS usage

Advanced Usage

  1. List supported voices

    import { list_voices } from "phonemizer";
    console.dir(await list_voices(), { depth: null });
    Example output
    [
      {
        name: "English (Caribbean)",
        identifier: "gmw/en-029",
        languages: [
          { priority: 5, name: "en-029" },
          { priority: 10, name: "en" },
        ],
      },
      {
        name: "English (Great Britain)",
        identifier: "gmw/en",
        languages: [
          { priority: 2, name: "en-gb" },
          { priority: 2, name: "en" },
        ],
      },
      {
        name: "English (Scotland)",
        identifier: "gmw/en-GB-scotland",
        languages: [
          { priority: 5, name: "en-gb-scotland" },
          { priority: 4, name: "en" },
        ],
      },
      {
        name: "English (Lancaster)",
        identifier: "gmw/en-GB-x-gbclan",
        languages: [
          { priority: 5, name: "en-gb-x-gbclan" },
          { priority: 3, name: "en-gb" },
          { priority: 5, name: "en" },
        ],
      },
      {
        name: "English (West Midlands)",
        identifier: "gmw/en-GB-x-gbcwmd",
        languages: [
          { priority: 5, name: "en-gb-x-gbcwmd" },
          { priority: 9, name: "en-gb" },
          { priority: 9, name: "en" },
        ],
      },
      {
        name: "English (Received Pronunciation)",
        identifier: "gmw/en-GB-x-rp",
        languages: [
          { priority: 5, name: "en-gb-x-rp" },
          { priority: 4, name: "en-gb" },
          { priority: 5, name: "en" },
        ],
      },
      {
        name: "English (America)",
        identifier: "gmw/en-US",
        languages: [
          { priority: 2, name: "en-us" },
          { priority: 3, name: "en" },
        ],
      },
      {
        name: "English (America, New York City)",
        identifier: "gmw/en-US-nyc",
        languages: [{ priority: 5, name: "en-us-nyc" }],
      },
    ];
  2. Select different language/voice

    import { phonemize } from "phonemizer";
    
    const phonemes = await phonemize("Hello world.", "en-gb-scotland");
    console.log(phonemes); // [ 'həlˈoː wˈʌɹld' ]

About

Simple text to phones converter using eSpeak NG.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published