Giter Site home page Giter Site logo

rhdunn / cainteoir-gtk Goto Github PK

View Code? Open in Web Editor NEW
11.0 11.0 3.0 1.1 MB

Gtk+ graphical front-end for Cainteoir Text-to-Speech

Home Page: http://rhdunn.github.com/cainteoir/

License: GNU General Public License v3.0

Shell 0.40% CSS 0.15% C++ 69.54% C 22.79% Makefile 2.09% M4 5.04%

cainteoir-gtk's People

Contributors

rhdunn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

cainteoir-gtk's Issues

list the available voices in the voices pane

The available voices should be listed in the voices pane allowing the user to switch to that voice. They should be able to preview the engine/voice settings and have the engine/voice selection persisted and restored when opening Cainteoir Gtk back up.

This should include search/filtering support based on the entered text.

There should also be an option to restrict the voice list to the document language.

support subject mapping in the document search UI

Create the mapping (publisher, subject) -> subject to support grouping related subjects from different publishers (e.g. how they label the subject "Super Hero").

This mapping should be used to determine how to group documents by subject.

The user can:

  1. label a subject grouping by either selecting one from the list taken from the selected (publisher, subject) pairs, or set it manually;
  2. export/import subject groupings -- all groupings, individual grouping or by publisher;
  3. see the actual subject label on a document and all labels associated with a subject group;
  4. add/remove (publisher, subject) pairs to/from a subject grouping.

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

support adding ratings to document metadata

The user should be able to search/filter by document ratings and add/update the user rating for the document. This should be tracked per user.

The user should also be able to add/update the user rating on the document metadata pane.

Show the rating as five stars (like, e.g. the Amazon rating).

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/1026830-support-adding-ratings-to-document-metadata?utm_campaign=plugin&utm_content=tracker%2F254963&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F254963&utm_medium=issues&utm_source=github).

investigate adding an MPRIS DBus binding

MPRIS (www.mpris.org/2.1/spec/) is a standard way of exposing media player functionality to other services such as the volume control widget in the Ubuntu toolbar.

Implementing this protocol will make cainteoir-gtk fit along side rhythmbox and banshee in the volume control area.

Also for investigation is:

  1. Should MPRIS support be added to cainteoir-engine so that the command-line version can take advantage of this;
  2. Exposing the document metadata through MPRIS as Xasam and Nepomuk ontologies.

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/1026834-investigate-adding-an-mpris-dbus-binding?utm_campaign=plugin&utm_content=tracker%2F254963&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F254963&utm_medium=issues&utm_source=github).

Read from text cursor position

This is a feature request to make possible the following features related to the text cursor

a) Let what is being read be highlighted (words in reverse video)
b) option to move cursor along with highlighted text
c) Read from current text cursor position
d) Similarly, let the reading jump with text cursor is cursor moved while playing.

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

provide a UI for managing user dictionaries

There should be a UI to interact with the dictionary API that is on the roadmap for the Cainteoir engine. This will allow the user to:

  • add words to a user-based pronunciation dictionary tied to the specified language;
  • remove words;
  • view words and their associated pronunciation;
  • listen to how the pronunciation will sound in the current voice;
  • get a transcription from another word(s) -- e.g. get the current pronunciation of the word, or use sounds-like words.

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

support filtering/searching the voice list

Currently, the voice list is too big to be manageable. The eSpeak program has a voice for each language and supports a large number of languages.

As a result, it should be possible to search/filter the voice list (searching all columns).

  1. This should be a text field to the right of the Voices header.
  2. The filtered results should be updated as the user types.
  3. There should be a drop-down list in the text field of previous search results (stored in the user settings file).
  4. There should be a drop-down option of "Current document language" (generic language, e.g. pt instead of specific language, e.g. pt-br).
  5. The text field should have a search icon on the inner-right of the search field.


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

investigate aligning Cainteoir Gtk with the Gnome3 designs

There are some very nice designs for applications in Gnome 3 (http://www.webupd8.org/2011/11/new-updated-gnome-application-designs.html). Of particular relevance is the album playback (http://4.bp.blogspot.com/-UhRyc_I-Nxw/TrwXEEv0sGI/AAAAAAAAGuw/5kB5CLSw1vU/music-album-playback.png).

Of interest is that the Cainteoir Text-to-Speech UI falls under several different use cases:

  1. music/media player -- listen to and record documents.
  2. document viewer -- view the document being read, including highlighting the current word being read; when not reading this is a traditional document viewer/text editor paradigm.
  3. text editor -- edit the document/text in the document view; paste text from the clipboard.
  4. view/manage the document library.
  5. view/modify the voices -- including setting preferred voices for a given language.
  6. view/edit dictionaries/words -- including per-language custom user dictionaries, as well as a phoneme entry UI (IPA, SAMPA, ...).
  7. view/edit audio transcriptions -- audio + text + narrow/broad phonetic transcription + part of speech annotations + stress/prosody annotations.
  8. voice editor -- view and edit voices, testing how different phonemes sound.

These all need to interact seamlessly with each other in a consistent, professional, modern UI that fits into the Gnome (and KDE) environments. It also needs to be useable and discoverable for new users.

Project status

Hi, is this and cainteoir-engine still active? Or would you recommend to just use espeak instead?
Just asking as there doesn't seem to be that much activity here and the ppa hasn't been updated in forever.

installation issues.

Compiling from source I got this error , runnig "make"
src/reader/reader_application.cpp:165:93: error: ‘gtk_application_set_accels_for_action’ was not declared in this scope

Kindly advise on any work around. Thank you .


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

support bookmarks in the documents

Users should be able to create, remove and rename bookmarks on documents.

There should be an automatic bookmark to track the current/last read position. This should include being able to track the last read position when the user has read the end of a document and the document is then subsequently updated with additional chapters (e.g. for serials updated periodically).


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

implement a phoneme entry UI for dictionary mode

This should be a single-line or multi-line text entry widget that supports entering phonemes in an intuitive way.

This should support ascii transcriptions where the ascii the user types gets converted to IPA as the user types.

There should be an IPA chart view with the IPA symbol and the ascii transcription for the current phoneme scheme.

Supported ascii phoneme schemes should include: ascii-ipa/Kirshenbaum, SAMPA-, X-SAMPA, eSpeak, CMU and Festival.

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

installation issue

Compiling from source I got this error , runnig "make"

CXX src/libcainteoir-gtk/cainteoir_audio_data_s16.lo
src/libcainteoir-gtk/cainteoir_audio_data_s16.cpp:26:33: fatal error: cainteoir/sigproc.hpp: Datei oder Verzeichnis nicht gefunden
#include <cainteoir/sigproc.hpp>
Kindly advise on any work around. Thank you .

provide a searchable document library

Provide a view that shows all documents in the users document library.

Support setting the directories and file types to scan.

Users should be able to:

  1. search for documents in the library by querying different parts of the metadata (title, author, publisher, keywords);
  2. view the metadata associated with the selected document;
  3. open the selected document.

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/1026833-provide-a-searchable-document-library?utm_campaign=plugin&utm_content=tracker%2F254963&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F254963&utm_medium=issues&utm_source=github).

investigate using gtk+ directly instead of gtkmm

There are several disadvantages to using gtkmm:

  1. String conversions and allocations to Glib::ustring. Since everything is in utf-8, we don't need to convert the strings and the Glib::using usage is causing unneeded overhead.
  2. More complicated compatibility code between different gtk+ versions. With the C version it is possible to create inlined versions of the missing C functions that are needed in a single place, keeping the compatibility code isolated in one place.
  3. Remove any valgrind errors associated with the gtkmm code. Ideally it should be possible to run cainteoir-gtk cleanly under valgrind without any false positives.
  4. Using gtkmm enforces their abstractions. It should be possible to use better abstractions and hide the implementation details away in the cpp files of cainteoir-gtk.

This task is to investigate how feasible it is to use GTK+ directly.

support next/prev chapter in the mediabar

Add support for next and previous chapter in the media bar -- [prev] [play/pause] [record/stop] [next] [open].

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/1026825-support-next-prev-chapter-in-the-mediabar?utm_campaign=plugin&utm_content=tracker%2F254963&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F254963&utm_medium=issues&utm_source=github).

support comparing two phonetic transcriptions

At the moment, I am using espeak -xq to get the phonetic transcription using the default English voice and a voice using just the Cainteoir English data. I am then using vimdiff to compare the two.

This makes comparing the prosodic transcriptions harder and comparing changes takes time.

It should be easy to compare transcriptions between two voices. Performing the above comparison also requires the cainteoir engine to support varying the dictionary to use for a particular language/voice.

The labels of the Voice > Settings parameters are not associated with the controls

Currently, the TTS engine parameter controls in the Voice > Settings section are created dynamically in code. This is causing accessibility issues.

The solution for this would be to define the layout in a GtkBuilder UI file. This layout can then be loaded for each parameter, and the text set in code. This allows the layout (including a11y) to be updated easily in tools like glade.

display the recent documents dialog as a filtered library view

When the user selects the "More Documents ..." from the recent menu, they currently get a recent documents dialog. This is cumbersome for several reasons:
1/ the dialog is small;
2/ the information is limited (filename and document icon);
3/ there is no ability to search/filter the documents in the UI.

As a way to improve the user experience of this workflow, it should switch to the document library, with the library set to a "recent documents" filter and sort order (quick filter button at the top of the library, with a breadcrumb navigation? -- "All > Recent").

support checking the current voice against a dictionary

This should be drivable through the Cainteoir Engine backend API, but it should be possible to run this through the UI with support for highlighting, tagging and filtering failed pronunciations, comparing the dictionary and voice pronunciations.

There should also be a summary view.

This is providing a GUI implementation of the make check functionality currently in the Cainteoir English project and tests/dictionary.py of Cainteoir Engine. There should also be a command-line version implemented in Cainteoir Engine to support the make check behaviour.

support customising the look and feel

There should be an options tab to customise the look and feel of the application:

  • mediabar at the top/bottom;
  • progress as a progress bar (with/without percentage progress) or a slider;
  • elapsed/total time both on the left, both on the right, or elapsed on the left and total on the right;
  • ...

There should also be several presets:

  • classic desktop;
  • gnome 3;
  • tablet;
  • ...

track the currently reading toc item and highlight in the content pane

At the moment, the cainteoir-gtk UI does not indicate which chapter/part/section is currently being read/recorded. It would be useful if this was highlighted.

The current thinking is to add this as a green triangle ('>') on the left hand edge (gutter) of the content list entries and be independent to the current selection.

It could also be useful to indicate the section(s) that are in the reading/recording range so that if the user changes the selection they can still see which sections will be read/recorded. This could be done using a hollow triangle, while the active section could be a filled triangle.

In addition to this, it may be useful to use a different glyph for the recording state -- possibly a red circle.

A possibility here is to use the stock play and record icons from the system theme, but what should be used for the active range?

This will require cainteoir-engine to signal when the section (anchor) has changed when it is reading/recording some text.

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/1026828-track-the-currently-reading-toc-item-and-highlight-in-the-content-pane?utm_campaign=plugin&utm_content=tracker%2F254963&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F254963&utm_medium=issues&utm_source=github).

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.