navalnica commited on
Commit
e59e248
Β·
1 Parent(s): e4deef7

limit input text length

Browse files
Files changed (3) hide show
  1. README.md +2 -9
  2. app.py +8 -2
  3. src/select_voice_chain.py +2 -0
README.md CHANGED
@@ -10,22 +10,15 @@ pinned: false
10
  python_version: 3.11
11
  ---
12
 
13
- ### Action items
14
 
15
- - voices
16
- - filter to use only best voices
17
  - intonations
18
- - add context
19
  - audio effects
20
  - add context
21
  - filter, apply only for long phrases
22
- - only for narrator?
23
- - stability
24
- - add limit on input text size (5000 chars)
25
  - improve UI
26
- - add error box
27
  - show character parts
28
- - prepare slides / story
29
  - testing
30
  - eval current execution time
31
  - optimizations
 
10
  python_version: 3.11
11
  ---
12
 
13
+ ### Action Items / Ideas
14
 
 
 
15
  - intonations
16
+ - add context
17
  - audio effects
18
  - add context
19
  - filter, apply only for long phrases
 
 
 
20
  - improve UI
 
21
  - show character parts
 
22
  - testing
23
  - eval current execution time
24
  - optimizations
app.py CHANGED
@@ -58,11 +58,17 @@ async def respond(
58
  logger.exception(e)
59
  return (None, str(e))
60
 
61
- if len(text) > MAX_TEXT_LEN:
62
- raise ValueError(len(text)) # TODO
 
 
 
 
 
63
 
64
  builder = AudiobookBuilder()
65
  audio_fp = await builder.run(text=text, generate_effects=generate_effects)
 
66
  return audio_fp, ""
67
 
68
 
 
58
  logger.exception(e)
59
  return (None, str(e))
60
 
61
+ if (text_len := len(text)) > MAX_TEXT_LEN:
62
+ gr.Warning(
63
+ f"Input text length of {text_len} characters "
64
+ f"exceeded current limit of {MAX_TEXT_LEN} characters. "
65
+ "Please input a shorter text."
66
+ )
67
+ return None, ""
68
 
69
  builder = AudiobookBuilder()
70
  audio_fp = await builder.run(text=text, generate_effects=generate_effects)
71
+
72
  return audio_fp, ""
73
 
74
 
src/select_voice_chain.py CHANGED
@@ -68,6 +68,8 @@ class VoiceSelector:
68
  if "manual_quality_review" in df.columns:
69
  logger.info('filtering df by "manual_quality_review" column')
70
 
 
 
71
  # ix_to_drop = df[df["manual_quality_review"].isin(["very bad"])].index
72
  ix_to_drop = df[df["manual_quality_review"].isin(["very bad", "bad"])].index
73
 
 
68
  if "manual_quality_review" in df.columns:
69
  logger.info('filtering df by "manual_quality_review" column')
70
 
71
+ # TODO: may need to use clever sampling, since we limit number of voices available.
72
+ # some property groups have small number of voices left.
73
  # ix_to_drop = df[df["manual_quality_review"].isin(["very bad"])].index
74
  ix_to_drop = df[df["manual_quality_review"].isin(["very bad", "bad"])].index
75