Doing int conversion with built-in number conversion

This commit is contained in:
Michael Hansen
2020-01-02 16:20:05 -05:00
parent 4f6d02169c
commit 76cf173849
5 changed files with 9 additions and 17 deletions
+1 -1
View File
@@ -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
+2 -1
View File
@@ -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
+1 -1
View File
@@ -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
+3 -1
View File
@@ -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
View File
@@ -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