brailcom / brailcom/speechd

Make module express their features

Open
#904 0 comments 0 reactions 0 assignees View on GitHub
enhancement help wanted
Dominant language
C
Stars
331
Forks
92
Avg merge
2d 10h
Merged PRs (30d)
9

Description

**Is your feature request related to a problem? Please describe.**
The server code has hardcoded lists such as

```
int punct_missing = 0;
if (strcmp(output->name, "flite") == 0 ||
strcmp(output->name, "dtk-generic") == 0 ||
strcmp(output->name, "epos-generic") == 0 ||
strcmp(output->name, "llia_phon-generic") == 0 ||
strcmp(output->name, "mary-generic") == 0 ||
strcmp(output->name, "swift-generic") == 0 ||
strcmp(output->name, "pico") == 0)
/* These don't support punctuation */
/* FIXME: rather make them express it */
punct_missing = 1;
```

**Describe the solution you'd like**
The modules should expose their features to the server. We'd want that after initialization. This could be a new command that the server sends to the module to get a feature list, which could be a mere list of lines. The features that the server doesn't understand can be ignored, and if the client says it doesn't support the command, we can assume that it doesn't support the features.

That would probably be useful for exposing the punctuation support as mentioned above, but also ssml support, see #905

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the server code containing the hardcoded punctuation list and the module initialization path. Trace how commands are sent between the server and modules, then determine how a feature list could be exchanged after initialization. Done means module capabilities such as punctuation and SSML support are exposed without hardcoded module names, with unknown features ignored and unsupported commands handled as described.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.