Rockbox

This is the bug/patch tracker for Rockbox. Click here for more information.

Quick links: Bugs · Patches · Rockbox frontpage

Tasklist

FS#6323 - Speech for ID3 viewer, playlist catalog and playlist viewer

Attached to Project: Rockbox
Opened by Stephane Doyon (sdoyon) - Monday, 13 November 2006, 04:18 GMT+2
Last edited by Thomas Martitz (kugel.) - Sunday, 05 June 2011, 13:43 GMT+2
Task Type Patches
Category User Interface
Status Closed
Assigned To No-one
Player Type All players
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Private No

Details

Add speech to the browse_id3() screen.

The fact that everything was in a list made it easy: just speak the
current line and let user move to hear the rest. But properly speaking
the various data types took a bit more work.

title, artist, album and genre are spelled.
(Genres are known strings but there's way too many of them to make voice
clips for each. Is there a half-dozen most used that we could do?)

Track number and year are usually a number but are in fact free-form and
given in a string. So I go through the string, saying successive digits
as numbers and spelling anything else. I even made a year unit so it says
"nineteen ninety nine" instead of "one thousand 9 hundred ninety nine".

Length (duration) is said in numbers of hours,minutes,seconds.
Playlist position is spoken as <number> "of" <number>.
Bitrate and frequency are said with appropriate unit.

Replaygain is parsed and if in the expected format, said as a signed
number, dot, fraction numbers spelled, and decibel unit. It the expected
form is not recognized, we just spell everything as a fallback.

Path is said using functionality from my talk_file patch, which I will
upload in a few minutes: it can play the .talk clips for each component
of the path, or just spell the whole thing.

And if no info is available for a particular field, it says so.
   talking-id3view.diff (14.5 KiB)
 rockbox-devel/apps/lang/english.lang |   44 ++++++---
 rockbox-devel/apps/screens.c         |  160 ++++++++++++++++++++++++++++++++++-
 rockbox-devel/apps/talk.c            |   46 ++++++++++
 rockbox-devel/apps/talk.h            |    2 
 4 files changed, 234 insertions(+), 18 deletions(-)

This task depends upon

View Dependency Graph

This task blocks these from closing
 FS#6338 - Playlist playing time 
Closed by  Thomas Martitz (kugel.)
Sunday, 05 June 2011, 13:43 GMT+2
Reason for closing:  Out of Date
Additional comments about closing:  There doesn't seem to be interest in this anymore. Open a new task if this is wrong.
Comment by Stephane Doyon (sdoyon) - Monday, 13 November 2006, 04:19 GMT+2
Some talk.c infrastructure to play a file's or dir's .talk thumbnail when
available, falling back to spelling or going straight to settings
depending on preference settings. Ability to prefix the thumbnail or
spelling with some talk ids. Function to speak each component of a
component of a full pathname, or spell it.

These are useful for bookmark entries, ID3 info and the playlist viewer,
and probably other places.

There is one issue with spelling the full path of a file: the queue of
clips in talk.c is quickly exceeded, as path names longer than 64 are not
uncommon. The simplistic fix is to bump up the queue size, but that does
waste a kilobyte or two of RAM.
   talk_file.diff (8 KiB)
 rockbox-devel/apps/talk.c            |  116 ++++++++++++++++++++++++++++++++++-
 rockbox-devel/apps/talk.h            |   11 +++
 rockbox-devel/apps/tree.c            |    7 --
 rockbox-devel/apps/lang/english.lang |   14 ++++
 4 files changed, 142 insertions(+), 6 deletions(-)

Comment by Stephane Doyon (sdoyon) - Monday, 13 November 2006, 04:21 GMT+2
Add speech to the playlist catalog.

Very small patch, but requires my talk_file patch.

Will play the playlist's .talk clip or spell out the name, depending
on settings.
   talk-playlist_catalog.diff (1.4 KiB)
 rockbox-devel/apps/playlist_catalog.c |   16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

Comment by Stephane Doyon (sdoyon) - Monday, 13 November 2006, 04:23 GMT+2
Add speech to the playlist viewer and playlist search screens.

Implemented as a list, so we speak the current entry.
Requires my talk_file patch.

In the viewer:
-If icons are enabled, says equivalent information such as "now playing",
"track to move"...
-If indices are enabled, says the index.
-It then says the track filename or full path (depending on settings)
using .talk clips or spelling.
-When in the process of moving a track, after saying the current entry it
pauses and says "moving track".

Playlist search: no progress report during the search, but the number of
matches is spoken when the search is complete. Then it's a simple list of
track names again.
   talk-playlist_viewer.diff (6.4 KiB)
 rockbox-devel/apps/lang/english.lang |   70 +++++++++++++++++++++++++++++++++++
 rockbox-devel/apps/playlist_viewer.c |   66 ++++++++++++++++++++++++++++++++-
 2 files changed, 135 insertions(+), 1 deletion(-)

Comment by daniel (daniel) - Monday, 11 June 2007, 11:34 GMT+2
Hi Can you tell me what number fly spray your talk_file patch is? Also do you know if this compiles on the latest svn build? Thanks.
Comment by Stephane Doyon (sdoyon) - Friday, 14 September 2007, 05:55 GMT+2
Here are current updates for all the patches.

These patches use functionality from:
-P6239: Lack of protection against reuse of p_thumbnail
-P7774: Voice callback for gui_synclist

And they are made to apply on top of:
-P7775: Use list voice callback in file browser
-P7653 Say file type
   talk_file.diff (8.3 KiB)
 trunk/apps/talk.c            |  116 ++++++++++++++++++++++++++++++++++++++++++-
 trunk/apps/talk.h            |   11 +++-
 trunk/apps/tree.c            |    7 +-
 trunk/apps/lang/english.lang |   14 +++++
 4 files changed, 143 insertions(+), 5 deletions(-)

   id3.diff (18.6 KiB)
 trunk/apps/screens.c         |  175 +++++++++++++++++++++++++++++++++++++++++--
 trunk/apps/talk.c            |   52 ++++++++++++
 trunk/apps/talk.h            |    3 
 trunk/apps/lang/english.lang |   38 ++++-----
 4 files changed, 243 insertions(+), 25 deletions(-)

Comment by Stephane Doyon (sdoyon) - Friday, 14 September 2007, 05:56 GMT+2
And the other two.
   playlist_catalog.diff (4.6 KiB)
 trunk/apps/playlist_catalog.c |   42 ++++++++++++++++++++++++++++++++++--------
 trunk/apps/lang/english.lang  |    4 ++--
 2 files changed, 36 insertions(+), 10 deletions(-)

   playlist_viewer.diff (9 KiB)
 trunk/apps/playlist_viewer.c |   74 ++++++++++++++++++++++++++++++++++++++-----
 trunk/apps/lang/english.lang |   72 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 138 insertions(+), 8 deletions(-)

Comment by Stephane Doyon (sdoyon) - Tuesday, 18 September 2007, 04:19 GMT+2
Sync'ed with recent gui_synclist_do_button change.
   playlist_catalog.diff (4.6 KiB)
 trunk/apps/playlist_catalog.c |   41 +++++++++++++++++++++++++++++++++--------
 trunk/apps/lang/english.lang  |    4 ++--
 2 files changed, 35 insertions(+), 10 deletions(-)

   playlist_viewer.diff (8.7 KiB)
 trunk/apps/playlist_viewer.c |   70 ++++++++++++++++++++++++++++++++++++++---
 trunk/apps/lang/english.lang |   72 ++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 136 insertions(+), 6 deletions(-)

Comment by Stephane Doyon (sdoyon) - Tuesday, 18 September 2007, 04:33 GMT+2
Sync'ed for recent gui_synclist_do_button change,
and I extracted common code used by other patches so this
now requires P#7798: Voice unit for time.
   id3.diff (16.8 KiB)
 trunk/apps/screens.c         |  173 +++++++++++++++++++++++++++++++++++++++++--
 trunk/apps/talk.h            |    1 
 trunk/apps/talk.c            |   24 +++++
 trunk/apps/lang/english.lang |   38 ++++-----
 4 files changed, 211 insertions(+), 25 deletions(-)

Comment by Stephane Doyon (sdoyon) - Wednesday, 26 September 2007, 03:04 GMT+2
update of id3.diff: Sync with P#7798 syntax change, and a simulator fix.
   id3.diff (16.9 KiB)
 trunk/apps/screens.c         |  175 +++++++++++++++++++++++++++++++++++++++++--
 trunk/apps/talk.h            |    1 
 trunk/apps/talk.c            |   24 +++++
 trunk/apps/lang/english.lang |   38 ++++-----
 4 files changed, 213 insertions(+), 25 deletions(-)

Comment by Stephane Doyon (sdoyon) - Wednesday, 26 September 2007, 03:10 GMT+2
Update to talk_file.diff:
-A stupid mistake that had an enqueue flag inverted.
-Sim fixes.
-Killed TABs...
   talk_file.diff (9.1 KiB)
 trunk/apps/talk.c            |  116 ++++++++++++++++++++++++++++++++++++++++++-
 trunk/apps/talk.h            |   18 ++++++
 trunk/apps/tree.c            |    7 +-
 trunk/apps/lang/english.lang |   14 +++++
 4 files changed, 150 insertions(+), 5 deletions(-)

Comment by Sofian Babai (sofianbabai) - Friday, 28 September 2007, 04:01 GMT+2
i'm impressed by this work. i'm going through all those patches and discovering. a really nice job!
Comment by Stephane Doyon (sdoyon) - Wednesday, 28 November 2007, 03:20 GMT+2
Sync of talk_file and playlist_catalog patches.

The only remaining dependency is P6239: Lack of protection against reuse
of p_thumbnail.
   talk_file.diff (8.2 KiB)
 trunk/apps/talk.c            |  114 ++++++++++++++++++++++++++++++++++++++++++-
 trunk/apps/tree.c            |    7 +-
 trunk/apps/talk.h            |   11 +++-
 trunk/apps/lang/english.lang |   14 +++++
 4 files changed, 141 insertions(+), 5 deletions(-)

   playlist_catalog.diff (5 KiB)
 trunk/apps/playlist_catalog.c |   44 ++++++++++++++++++++++++++++++++++--------
 trunk/apps/lang/english.lang  |    4 +--
 2 files changed, 38 insertions(+), 10 deletions(-)

Comment by Stephane Doyon (sdoyon) - Tuesday, 15 July 2008, 18:20 GMT+2
talk_file and playlist_catalog have been committed.

playlist_viewer and id3 remain.

id3 has a good deal of code and voice entries, IWBN as a plugin, when plugins can talk.

Loading...