Code Monkey home page Code Monkey logo

espeak-phonemizer's Introduction

Rhasspy Voice Assistant

Rhasspy 2.5 logo

Rhasspy (ˈɹæspi) is an open source, fully offline set of voice assistant services for many human languages that works well with:

You specify voice commands in a template language:

[LightState]
states = (on | off)
turn (<states>){state} [the] light

and Rhasspy will produce JSON events that can trigger action in home automation software, such as a Node-RED flow:

{
    "text": "turn on the light",
    "intent": {
        "name": "LightState"
    },
    "slots": {
        "state": "on"
    }
}

Rhasspy is optimized for:

Learn More

Web Interface

Rhasspy comes with a snazzy web interface that lets you configure, program, and test your voice assistant remotely from your web browser. All of the web UI's functionality is exposed in a comprehensive HTTP API.

Test page in web interface

Getting Started

Ready to try Rhasspy? Follow the steps below or check out the Getting Started Guide.

  1. Make sure you have the necessary hardware
  2. Choose an installation method
  3. Access the web interface to download a profile
  4. Author your custom voice commands and train Rhasspy
  5. Connect Rhasspy to other software like Home Assistant or a Node-RED flow by:

Getting Help

If you have problems, please stop by the Rhasspy community site or open a GitHub issue.

Supported Languages

Rhasspy supports the following languages:

Services

As of version 2.5, Rhasspy is composed of independent services that coordinate over MQTT using a superset of the Hermes protocol.

Rhasspy services

You can easily extend or replace functionality in Rhasspy by using the appropriate messages. Many of these messages can be also sent and received over the HTTP API and the Websocket API.

Intended Audience

Rhasspy is intended for savvy amateurs or advanced users that want to have a private voice interface to their chosen home automation software. There are many other voice assistants, but none (to my knowledge) that:

  1. Can function completely disconnected from the Internet
  2. Are entirely free/open source with a permissive license
  3. Work well with freely available home automation software

If you feel comfortable sending your voice commands through the Internet for someone else to process, or are not comfortable customizing software to handle intents, I recommend taking a look at Mycroft.

Contributing

Community contributions are welcomed! There are many different ways to contribute, both as a developer and a non-developer.

Open source


Development Status

The various repositories also have their own issue tracker to follow and discuss development of these specific components. Here's the status of all repositories:

Repository Tests Open issues Open pull requests
rhasspy Tests Open issues Open pull requests
rhasspy-asr Tests Open issues Open pull requests
rhasspy-asr-deepspeech Tests Open issues Open pull requests
rhasspy-asr-deepspeech-hermes Tests Open issues Open pull requests
rhasspy-asr-kaldi Tests Open issues Open pull requests
rhasspy-asr-kaldi-hermes Tests Open issues Open pull requests
rhasspy-asr-pocketsphinx Tests Open issues Open pull requests
rhasspy-asr-pocketsphinx-hermes Tests Open issues Open pull requests
rhasspy-client Tests Open issues Open pull requests
rhasspy-dialogue-hermes Tests Open issues Open pull requests
rhasspy-fuzzywuzzy Tests Open issues Open pull requests
rhasspy-fuzzywuzzy-hermes Tests Open issues Open pull requests
rhasspy-hermes Tests Open issues Open pull requests
rhasspy-hermes-app Tests Open issues Open pull requests
rhasspy-homeassistant-hermes Tests Open issues Open pull requests
rhasspy-microphone-cli-hermes Tests Open issues Open pull requests
rhasspy-microphone-pyaudio-hermes Tests Open issues Open pull requests
rhasspy-nlu Tests Open issues Open pull requests
rhasspy-nlu-hermes Tests Open issues Open pull requests
rhasspy-profile Tests Open issues Open pull requests
rhasspy-python-template Tests Open issues Open pull requests
rhasspy-rasa-nlu-hermes Tests Open issues Open pull requests
rhasspy-remote-http-hermes Tests Open issues Open pull requests
rhasspy-server-hermes Tests Open issues Open pull requests
rhasspy-silence Tests Open issues Open pull requests
rhasspy-snips-nlu Tests Open issues Open pull requests
rhasspy-snips-nlu-hermes Tests Open issues Open pull requests
rhasspy-speakers-cli-hermes Tests Open issues Open pull requests
rhasspy-supervisor Tests Open issues Open pull requests
rhasspy-tag-action Tests Open issues Open pull requests
rhasspy-tts-cli-hermes Tests Open issues Open pull requests
rhasspy-update-repo-action Tests Open issues Open pull requests
rhasspy-wake-pocketsphinx-hermes Tests Open issues Open pull requests
rhasspy-wake-porcupine-hermes Tests Open issues Open pull requests
rhasspy-wake-precise-hermes Tests Open issues Open pull requests
rhasspy-wake-raven Tests Open issues Open pull requests
rhasspy-wake-raven-hermes Tests Open issues Open pull requests
rhasspy-wake-snowboy-hermes Tests Open issues Open pull requests

espeak-phonemizer's People

Contributors

artyom17 avatar msftcangoblowm avatar synesthesiam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

espeak-phonemizer's Issues

the espeaks phonemizer is ruined in some languages

Hello. When I tried the russian irina for piper synth, I noticed that the numbers was pronounced incorrectly. When I analysed it better, I heard something similar to espeak. Espeak pronounces noil for number zero, so does piper Irina, but the correct is nol'. That applies for almost all numbers in russian.

Hangs then segfaults with 'Unknown phoneme table: ''" if ending the string with '..'

Adding a .. at the end causes the binary to hang and segfault after consuming CPU cycles. I'm guessing something related to punctuation processing.

$ echo 'testing testing..' | espeak-phonemizer -v en-us --keep-punctuation
Unknown phoneme table: ''
Unknown phoneme table: ''
Unknown phoneme table: ''
Unknown phoneme table: ''
Unknown phoneme table: ''
Unknown phoneme table: ''
Unknown phoneme table: ''
Unknown phoneme table: ''
[1]    43608 done                              echo 'testing testing..' | 
       43609 segmentation fault (core dumped)  espeak-phonemizer -v en-us --keep-punctuation
$ espeak-ng --version
eSpeak NG text-to-speech: 1.51  Data at: /usr/lib/x86_64-linux-gnu/espeak-ng-data
$ inxi -S
System:
  Host: lxe-ubuntu Kernel: 6.5.0-9-generic arch: x86_64 bits: 64
    Desktop: GNOME v: 45.2 Distro: Ubuntu 24.04 (Noble Numbat)

espeak-ng doesn't crash:

$ echo 'testing testing..' | espeak-ng 

Tests crash on Ubuntu Jammy

The lib is installed

sudo apt install libespeak-ng1

The cli segfaults:

$ echo "Hello world" | /tmp/phonemizer/bin/espeak-phonemizer -v en-us
Segmentation fault

And the test crash.

$ make test
scripts/run-tests.sh
Traceback (most recent call last):
  File "/tmp/phonemizer/lib/python3.10/site-packages/pytest/__main__.py", line 7, in <module>
    raise SystemExit(pytest.main())
  File "/tmp/phonemizer/lib/python3.10/site-packages/_pytest/config/__init__.py", line 105, in main
    config = _prepareconfig(args, plugins)
  File "/tmp/phonemizer/lib/python3.10/site-packages/_pytest/config/__init__.py", line 257, in _prepareconfig
    return pluginmanager.hook.pytest_cmdline_parse(
  File "/tmp/phonemizer/lib/python3.10/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/tmp/phonemizer/lib/python3.10/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/tmp/phonemizer/lib/python3.10/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/tmp/phonemizer/lib/python3.10/site-packages/pluggy/callers.py", line 203, in _multicall
    gen.send(outcome)
  File "/tmp/phonemizer/lib/python3.10/site-packages/_pytest/helpconfig.py", line 90, in pytest_cmdline_parse
    config = outcome.get_result()
  File "/tmp/phonemizer/lib/python3.10/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/tmp/phonemizer/lib/python3.10/site-packages/pluggy/callers.py", line 187, in _multicall
    res = hook_impl.function(*args)
  File "/tmp/phonemizer/lib/python3.10/site-packages/_pytest/config/__init__.py", line 836, in pytest_cmdline_parse
    self.parse(args)
  File "/tmp/phonemizer/lib/python3.10/site-packages/_pytest/config/__init__.py", line 1044, in parse
    self._preparse(args, addopts=addopts)
  File "/tmp/phonemizer/lib/python3.10/site-packages/_pytest/config/__init__.py", line 992, in _preparse
    self.pluginmanager.load_setuptools_entrypoints("pytest11")
  File "/tmp/phonemizer/lib/python3.10/site-packages/pluggy/manager.py", line 299, in load_setuptools_entrypoints
    plugin = ep.load()
  File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 171, in load
    module = import_module(match.group('module'))
  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "/tmp/phonemizer/lib/python3.10/site-packages/_pytest/assertion/rewrite.py", line 143, in exec_module
    source_stat, co = _rewrite_test(fn, self.config)
  File "/tmp/phonemizer/lib/python3.10/site-packages/_pytest/assertion/rewrite.py", line 330, in _rewrite_test
    co = compile(tree, fn, "exec", dont_inherit=True)
TypeError: required field "lineno" missing from alias
Coverage.py warning: No data was collected. (no-data-collected)
make: *** [Makefile:17: test] Error 1

Errors in phone table

Hello,

I found errors in Armenian phone table. Where can I correct them?

Thank you in advance!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.