Phase 3: Voice Management System
Timeline: Weeks 9-12 Status: Planned
Core Goal
Build admin tools for managing voice actors, samples, and gallery content.
Admin Features
Voice Actor Management
- Add/edit voice actor profiles
- Upload voice samples and demos
- Set availability status
- Manage voice characteristics
- Track performance metrics
Sample Library Management
- Upload and organize samples
- Categorize by type/language/style
- Preview and quality control
- Sample approval workflow
- Version management
Voice Gallery Administration
- Curate featured voices
- Set display order
- Tag and categorize
- Enable/disable voices
- Bulk operations
Enhanced Client Experience
Improved Voice Gallery
- Advanced filtering (gender, accent, style)
- Extended sample previews
- Voice characteristics display
- Availability indicators
- Favorites/bookmarks
Voice Search & Discovery
- Keyword search
- Filter combinations
- Sort options (popular, new, A-Z)
- Sample playback history
Voice Actor Workflows
Onboarding Flow
Sample Management Flow
Voice Actor Profile Structure
Profile Fields
| Field | Type | Required | Description |
|---|---|---|---|
| Name | String | Yes | Actor display name |
| Bio | Text | No | Brief description |
| Avatar | Image | No | Profile photo |
| Languages | Array | Yes | Supported languages |
| Accents | Array | Yes | Available accents |
| Styles | Array | Yes | Voice styles/tones |
| Sample Rate | String | Yes | Price tier |
| Availability | Boolean | Yes | Available for requests |
Voice Characteristics Tags
Gender:
- Male
- Female
- Non-binary
Age Range:
- Young (18-30)
- Adult (31-50)
- Mature (51+)
Tone:
- Warm
- Professional
- Energetic
- Calm
- Authoritative
Accent:
- American
- British
- Australian
- Neutral
Sample Library Structure
Sample Types
-
Demo Reels
- Showcase range and versatility
- 30-60 seconds
- Multiple styles
-
Character Samples
- Specific voice types
- 15-30 seconds
- Tagged by style
-
Script Samples
- Common use cases
- Professional reads
- Various tones
Sample Metadata
{
"sampleId": "uuid",
"voiceActorId": "uuid",
"type": "demo|character|script",
"duration": 30,
"language": "en-US",
"tags": ["warm", "professional"],
"fileUrl": "https://cdn.micdots.com/samples/uuid.mp3",
"uploadedAt": "2024-11-08T10:00:00Z",
"status": "approved|pending|rejected"
}
Acceptance Criteria
F3.1 - Voice Actor Profile Management
User Story: As admin, I want to manage voice actor profiles for diverse options.
Acceptance Criteria:
- AC3.1.1: Given I'm admin, when I access voice management, then list of actors with status (active/inactive/pending)
- AC3.1.2: Given I add actor, when I click "Add", then form with: name, bio, languages, specialties, contact, rates
- AC3.1.3: Given I create profile, when I enter required fields, then can save as "draft" before samples
- AC3.1.4: Given I edit actor, when I click edit, then populated form with all current info editable
- AC3.1.5: Given I update info, when I save, then modifications tracked with timestamp and admin user
- AC3.1.6: Given I deactivate actor, when status changed, then not in client selection but existing requests unaffected
- AC3.1.7: Given actor disputes info, when complaint received, then full edit history and contact visible
F3.2 - Voice Sample Library Management
User Story: As admin, I want to upload and organize voice samples.
Acceptance Criteria:
- AC3.2.1: Given I view actor profile, when I access samples, then all uploaded samples with metadata shown
- AC3.2.2: Given I upload sample, when I drag file, then validated (.mp3/.wav, under 10MB, 15-60 sec)
- AC3.2.3: Given valid upload, when processing completes, then sample appears with auto-generated waveform
- AC3.2.4: Given I organize samples, when I view list, then can add tags and categorize by style
- AC3.2.5: Given I replace sample, when I upload new, then old archived and new becomes active
- AC3.2.6: Given I preview, when I click play, then audio plays with controls and note-taking option
- AC3.2.7: Given quality issues, when I review, then can mark "needs improvement" with feedback
- AC3.2.8: Given I approve sample, when status changed, then available for client selection immediately
- AC3.2.9: Given I remove sample, when deactivated, then hidden from clients but accessible for admin
F3.3 - Enhanced Voice Gallery
User Story: As client, I want improved voice gallery for better selections.
Acceptance Criteria:
- AC3.3.1: Given I'm on voice selection, when page loads, then grid with photos, names, sample count
- AC3.3.2: Given I filter, when I use options, then can filter by: gender, age, accent, style, availability
- AC3.3.3: Given I click actor, when expanded, then multiple samples and detailed bio shown
- AC3.3.4: Given I listen to samples, when I play, then clear controls and easy comparison
- AC3.3.5: Given I select voice, when chosen, then selection clearly indicated and can proceed
- AC3.3.6: Given actor unavailable, when I select, then availability info and estimated return date shown
- AC3.3.7: Given I view actor, when on page, then "similar voices" suggestions shown
- AC3.3.8: Given mobile use, when I browse, then voice cards appropriately sized and controls work
- AC3.3.9: Given assistive tech, when I navigate, then all info accessible via screen reader
F3.4 - Voice Quality Management
User Story: As admin, I want to maintain quality standards.
Acceptance Criteria:
- AC3.4.1: Given new samples, when I review, then checklist for: clear speech, volume, minimal noise, proper format
- AC3.4.2: Given sample fails, when I reject, then specific feedback: audio quality, delivery, technical issues
- AC3.4.3: Given I approve, when marked approved, then auto-tagged with approval date and admin
- AC3.4.4: Given I set standards, when I access guidelines, then can update: volume, noise tolerance, speed, clarity
- AC3.4.5: Given consistent quality, when I review work, then can mark actor "preferred" for recommendations
- AC3.4.6: Given quality issues, when I identify patterns, then can generate reports on common problems
- AC3.4.7: Given client complaint, when I investigate, then can trace decision history and take action
API Endpoints
Create Voice Actor
Endpoint: POST /api/v1/admin/voice-actors
Request Body:
{
"name": "Jane Doe",
"email": "jane@example.com",
"languages": ["en-US", "en-GB"],
"accents": ["American", "British"],
"styles": ["warm", "professional"],
"availability": true
}
Response: 201 Created
{
"success": true,
"data": {
"id": "uuid",
"name": "Jane Doe",
"status": "active"
}
}
Upload Voice Sample
Endpoint: POST /api/v1/admin/voice-samples
Headers:
Authorization: Bearer ADMIN_TOKEN
Content-Type: multipart/form-data
Form Data:
voiceActorId(string)type(demo|character|script)tags(array)audioFile(file)
Testing Examples
Create Voice Actor
curl -X POST http://localhost:5000/api/v1/admin/voice-actors \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ADMIN_TOKEN" \
-d '{
"name": "John Smith",
"email": "john@example.com",
"languages": ["en-US"],
"accents": ["American"],
"styles": ["professional", "energetic"],
"availability": true
}'
Upload Sample
curl -X POST http://localhost:5000/api/v1/admin/voice-samples \
-H "Authorization: Bearer ADMIN_TOKEN" \
-F "voiceActorId=uuid" \
-F "type=demo" \
-F "tags[]=warm" \
-F "tags[]=professional" \
-F "audioFile=@sample.mp3"
Success Criteria
Functionality
- ✅ Admin can manage voice actors
- ✅ Samples upload and preview work
- ✅ Gallery displays correctly
- ✅ Filtering and search functional
- ✅ Quality control workflow operational
Performance
- Sample upload < 10 seconds
- Gallery load < 2 seconds
- Search results < 1 second
Quality
- Audio samples high quality
- Categorization accurate
- Search results relevant
Deliverables
-
Admin Tools
- Voice actor CRUD
- Sample management
- Gallery curation
-
Client Gallery
- Enhanced browsing
- Advanced filtering
- Sample playback
-
Voice Actor Portal (Optional)
- Sample upload interface
- Profile management
- Analytics dashboard
-
Documentation
- Admin guide
- Voice actor onboarding
- Sample requirements