Application and User Requirements

Overview

The purpose of this application is to manage the storage and playback of digital recordings through speech commands in addition to a graphical user interface. While the primary foreseeable use may be as a music/video player, there should be no reason a user could not use it as a presentational tool, an aid for the visually impaired, etc. The user must be able to add and remove libraries of recordings to and from the application, train the component to recognize the library and the articles within the library by voice commands, search for those articles and playback a given recording within a library. The application must have the ability to configure the words that are used for the speech commands. The aim is to be able to use the player by speech commands alone once the application is started. However, some assistance may be required in the configuration at startup. For this version, the application will handle audio files in .mp3 and .wav file formats, but the component should be designed so that additional file types can be easily managed and viewed.

User Requirements

1. Manage libraries and library files
  • The application must provide the ability to create a new library. The user can indicate the folder in which the files are located, and the application will create links to that folder. If no folder is indicated, the application will create a "virtual" library to which files can be added later. If the folder is empty, or does not contain any files that it recognizes, the new library will be empty until files are added. During the process of creating a library, the user should be able to add any comments about the library.

  • Each file will have six traits (properties) associated with it: a library name, a file category, a file group, a file name, a file comment and an image for file artwork. Additionally, each library should be able to have a comment associated with it.

  • The user should be able to configure the names used for these properties or traits. (For instance, a music player application might want to call file category as "genre", a file group as "album" and file name as "song".) These generic configurable names should cover most uses.

  • These generic configurable names can be configured in such a way as to represent the file hierarchy that is used for a particular library. For example, the string "library/category/group/file" could be used to indicate the file structure for which the application is to look when adding a new library folder as a library. Once again, if the file structure is not present and there are no files present in the folder, the newly created library will be empty until files are added.

  • The user will be able to delete a library or any file in a library. Only consolidated files will be deleted from the application's storage.
  • The user will be able to add or remove a file from a library by indicating the file on a file system to add. Initially, just a link to the file is added. When the user adds a file, the user should be able to add a comment about that file.
  • The user will be able to consolidate a library. A consolidate operation simply creates new copies of all the files for a certain library and stores them in application storage.
  • The user should be able to change the contents of any of the comment fields through the user interface.
2. Create and manage custom playlists of files. Playlists are much like libraries except for a couple of differences. First, files in a playlist are only logical references to library files. Second, playlists cannot contain items not already added to a library. When deleted, only the logical references are deleted.
3. Select a file
The user will be able to select a file in the currently displayed playlist.
4. Use application interactively by speech
The speech interactivity must be an option that can be turned off.
The user will be able to manage libraries (and playlist) in storage - that is, search, sort, play, pause, volume control, navigate forward and back in playlist, fast forward and rewind a current file, ask for help, train new words not recognized in dictionary and customize word recognition to the user's voice.
The application will give speech feedback to the user to indicate progress in fulfilling the commands, inconsistent states and a help feature to indicate to the user the current options.
The user can ask for comments on selected library or file and hear the comments spoken by the speech synthesis engine
5. Search the managed libraries for files that meet a given criteria
The user will able to search the entire application storage for files that meet a certain criteria. The search can be done by library (and playlist), by category, by group or by file. The result of the search will be a playlist of files displayed in the playlist list.
6. Sort playlist
The user must be able to play the play list in ascending, descending or random shuffle order
7. Help Availability
a help browser system that can be launched through the GUI
A help system that can be accessed interactively through speech to indicate current state of the application and current options.
8. Display console
a treeview of the libraries and playlists. The commments for each library should be displayed when the user rolls over the library in the treeview
a list of files from a selected library or playlist. The file comments should be displayed when the user rolls over the selected file in the list.
a player control in which the file can be played or presented to the user. This player should additionally provide controls for play/pause/ffd/rwnd/next/back/etc. manipulations on a selected file. The player should also provide a view of the status of the file, artwork, and comments.



Expected Uses

Download the formal document here: User/System Requirements Document