Doing int conversion with built-in number conversion
This commit is contained in:
+1
-1
@@ -15,6 +15,6 @@ pydash==4.7.6
|
||||
quart==0.6.15
|
||||
quart-cors==0.1.3
|
||||
requests==2.22.0
|
||||
rhasspy-nlu==0.1.3
|
||||
rhasspy-nlu==0.1.4
|
||||
swagger-ui-py==0.1.7
|
||||
webrtcvad==2.0.10
|
||||
|
||||
@@ -15,11 +15,12 @@ pydash==4.7.6
|
||||
quart==0.6.15
|
||||
quart-cors==0.1.3
|
||||
requests==2.22.0
|
||||
rhasspy-nlu==0.1.3
|
||||
rhasspy-nlu==0.1.4
|
||||
swagger-ui-py==0.1.7
|
||||
webrtcvad==2.0.10
|
||||
|
||||
flake8==3.7.9
|
||||
pylint==2.4.4
|
||||
pyinstaller==3.5
|
||||
mypy==0.700
|
||||
mkdocs==1.0.4
|
||||
|
||||
@@ -12,6 +12,6 @@ pydash==4.7.6
|
||||
quart==0.6.15
|
||||
quart-cors==0.1.3
|
||||
requests==2.22.0
|
||||
rhasspy-nlu==0.1.1
|
||||
rhasspy-nlu==0.1.4
|
||||
swagger-ui-py==0.1.7
|
||||
webrtcvad==2.0.10
|
||||
|
||||
@@ -149,7 +149,7 @@ def train_profile(profile_dir: Path, profile: Profile) -> Tuple[int, List[str]]:
|
||||
try:
|
||||
n = int(word.text)
|
||||
|
||||
# 75 -> (seventy five):75
|
||||
# 75 -> (seventy five):75!int
|
||||
number_text = num2words(n, lang=language).replace("-", " ").strip()
|
||||
assert number_text, f"Empty num2words result for {n}"
|
||||
number_words = number_text.split()
|
||||
@@ -158,12 +158,14 @@ def train_profile(profile_dir: Path, profile: Profile) -> Tuple[int, List[str]]:
|
||||
# Easy case, single word
|
||||
word.text = number_text
|
||||
word.substitution = str(n)
|
||||
word.converters = ["int"]
|
||||
else:
|
||||
# Hard case, split into mutliple Words
|
||||
return jsgf.Sequence(
|
||||
text=number_text,
|
||||
type=jsgf.SequenceType.GROUP,
|
||||
substitution=str(n),
|
||||
converters=["int"],
|
||||
items=[jsgf.Word(w) for w in number_words],
|
||||
)
|
||||
except ValueError:
|
||||
|
||||
+2
-13
@@ -13,8 +13,7 @@ import threading
|
||||
import wave
|
||||
from collections import defaultdict
|
||||
from pathlib import Path
|
||||
from typing import (Any, Callable, Dict, Iterable, List, Mapping, Optional,
|
||||
Set, Tuple)
|
||||
from typing import Any, Callable, Dict, Iterable, List, Mapping, Optional, Set, Tuple
|
||||
|
||||
import pywrapfst as fst
|
||||
import rhasspynlu
|
||||
@@ -403,9 +402,7 @@ def ppath(
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
|
||||
def numbers_to_words(
|
||||
sentence: str, language: Optional[str] = None, add_substitution: bool = False
|
||||
) -> str:
|
||||
def numbers_to_words(sentence: str, language: Optional[str] = None) -> str:
|
||||
"""Replaces numbers with words in a sentence. Optionally substitues number back in."""
|
||||
if not language:
|
||||
# Default language
|
||||
@@ -419,14 +416,6 @@ def numbers_to_words(
|
||||
|
||||
# 75 -> seventy-five -> seventy five
|
||||
words[i] = num2words(number, lang=language).replace("-", " ")
|
||||
|
||||
if add_substitution:
|
||||
# Empty substitution for everything but last word.
|
||||
# seventy five -> seventy: five:75
|
||||
number_words = [w + ":" for w in split_whitespace(words[i])]
|
||||
number_words[-1] += word
|
||||
words[i] = " ".join(number_words)
|
||||
|
||||
changed = True
|
||||
except ValueError:
|
||||
pass # not a number
|
||||
|
||||
Reference in New Issue
Block a user