Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make the text-to-speech chain flexible #46

Open
rhdunn opened this issue Apr 11, 2013 · 0 comments
Open

Make the text-to-speech chain flexible #46

rhdunn opened this issue Apr 11, 2013 · 0 comments

Comments

@rhdunn
Copy link
Owner

rhdunn commented Apr 11, 2013

It should be possible to specify the specific call chain of the different text analysis parts:

  1. text reader -- splits the document events into words, numbers and punctuation;
  2. context analysis -- identifies the type of punctuation (comma, etc.) and number (ordinal, year, etc.)
  3. word stream -- converts the numbers and audible punctuation to words
  4. part of speech tagger -- tags words with their associated part of speech
  5. part of speech disambiguator -- resolves ambiguous part of speech tag assignments

It should be possible to build a pipeline of these and others in an arbitary order. This means:

  1. Creating an abstract class:

    struct text_event_reader
    {
        virtual const text_event &event() const = 0;
        virtual bool read() = 0;
    };
    
  2. Having all the analysis parts above implement the abstract class.

  3. Making the classes take a std::shared_ptr<text_event_reader> instead of a std::shared_ptr<document_reader> (except for text_reader which starts the process).

  4. Optionally hiding them behind a createXYZ method.

This will be a performance hit (need to measure to see how much), but it adds flexibility -- especially for using different grapheme to phoneme rules.


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant