• Status Closed
  • Percent Complete
  • Task Type Patches
  • Category User Interface
  • Assigned To No-one
  • Operating System All players
  • Severity Low
  • Priority Very Low
  • Reported Version
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by sdoyon - 2006-11-13
Last edited by kugel. - 2011-06-05

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

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.

The task blocks this from closing
ID Project Summary Priority Severity Assigned To Progress
6338 Rockbox  FS#6338 - Playlist playing time  Very Low Low
Closed by  kugel.
2011-06-05 11:43
Reason for closing:  Out of Date
Additional comments about closing:   Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407

There doesn't seem to be interest in this anymore. Open a new task if this is wrong.

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.

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.

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.

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.

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

Sync’ed with recent gui_synclist_do_button change.

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)

update of id3.diff: Sync with P#7798 syntax change, and a simulator fix.

   id3.diff (16.9 KiB)

Update to talk_file.diff:
-A stupid mistake that had an enqueue flag inverted.
-Sim fixes.
-Killed TABs…

i’m impressed by this work. i’m going through all those patches and discovering. a really nice job!

Sync of talk_file and playlist_catalog patches.

The only remaining dependency is P6239: Lack of protection against reuse
of p_thumbnail.

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.


Available keyboard shortcuts


Task Details

Task Editing