diff --git a/README.md b/README.md index 33d261b0..a020f775 100644 --- a/README.md +++ b/README.md @@ -148,7 +148,7 @@ SkyEye would not be possible without these people and projects, for whom I am de * @rurounijones's [OverlordBot](https://gitlab.com/overlordbot) was a useful reference against SkyEye during early development, and Jones himself was also patient with my questions on Discord. * [ONNX Runtime](https://onnxruntime.ai)'s technology is used to run AI models. [sherpa-onnx](https://k2-fsa.github.io/sherpa/onnx/index.html) is used to run models from Go code. * Nvidia [Parakeet](https://parakeettdt.com) is used for speech recognition. -* @rodaine's [numwords](https://github.com/rodaine/numwords) module is invaluable for parsing numeric quantities from voice input. +* @rodaine's [numwords](https://github.com/rodaine/numwords) module is invaluable for parsing numeric quantities from voice input. (I did need to [fork this module](https://github.com/dharmab/numwords) to make it more appropriate for aviation use.) * [Piper](https://github.com/rhasspy/piper) by the [Rhasspy](https://rhasspy.readthedocs.io/en/latest/) voice assistant project is used for speech-to-text on Windows and Linux. * The [Jenny dataset by Dioco](https://github.com/dioco-group/jenny-tts-dataset) provides the feminine voice for SkyEye on Windows and Linux. * @popey's dataset provides the masculine voice for SkyEye on Windows and Linux. diff --git a/go.mod b/go.mod index 904f4f9a..ae4b46ad 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/dharmab/skyeye -go 1.26 +go 1.26.0 require ( github.com/DCS-gRPC/go-bindings v0.7.1 @@ -9,6 +9,7 @@ require ( github.com/amitybell/piper-voice-jenny v0.0.0-20231118093224-dcf0d49e46b7 github.com/bwmarrin/discordgo v0.28.1 github.com/dharmab/goacmi v1.0.3 + github.com/dharmab/numwords v1.0.1 github.com/gammazero/deque v0.2.1 github.com/go-audio/aiff v1.1.0 github.com/gofrs/flock v0.13.0 @@ -22,7 +23,6 @@ require ( github.com/pasztorpisti/go-crc v1.0.0 github.com/paulmach/orb v0.11.1 github.com/proway2/go-igrf v0.5.1 - github.com/rodaine/numwords v0.0.0-20200910203654-405f4a455f79 github.com/rs/zerolog v1.33.0 github.com/spf13/cobra v1.10.2 github.com/spf13/pflag v1.0.10 diff --git a/go.sum b/go.sum index 69f540cb..ca5df1ab 100644 --- a/go.sum +++ b/go.sum @@ -182,6 +182,8 @@ github.com/denis-tingaikin/go-header v0.5.0 h1:SRdnP5ZKvcO9KKRP1KJrhFR3RrlGuD+42 github.com/denis-tingaikin/go-header v0.5.0/go.mod h1:mMenU5bWrok6Wl2UsZjy+1okegmwQ3UgWl4V1D8gjlY= github.com/dharmab/goacmi v1.0.3 h1:NSxBKlLgJlI/V7Q68lh2uLZC6BJgZkphelKKEmSaEMc= github.com/dharmab/goacmi v1.0.3/go.mod h1:wZArjjRgFNYtQJkA9vBTbpM3FqkP3fg+bhQJzkEwpq0= +github.com/dharmab/numwords v1.0.1 h1:6zFMoWEiavZmQAiyd1/0h8x/5gzpj8ijbZWgcIHoQAA= +github.com/dharmab/numwords v1.0.1/go.mod h1:JtKH/TWNyBBkmVJVdZGyX+fBXTcknxOI+75dISW+PXc= github.com/dlclark/regexp2 v1.11.5 h1:Q/sSnsKerHeCkc/jSTNq1oCm7KiVgUMZRDUoRu0JQZQ= github.com/dlclark/regexp2 v1.11.5/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= github.com/dnephin/pflag v1.0.7 h1:oxONGlWxhmUct0YzKTgrpQv9AUA1wtPBn7zuSjJqptk= @@ -595,8 +597,6 @@ github.com/raeperd/recvcheck v0.2.0/go.mod h1:n04eYkwIR0JbgD73wT8wL4JjPC3wm0nFtz github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= -github.com/rodaine/numwords v0.0.0-20200910203654-405f4a455f79 h1:0fk+jnjduMBhQ2WNA3BubRESs5HgiqujdpxUUWCqsts= -github.com/rodaine/numwords v0.0.0-20200910203654-405f4a455f79/go.mod h1:6O99ZbuNiiFpvPTMhvF4natmeT+oFrfSbtbC7LIJwss= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= diff --git a/pkg/parser/parser.go b/pkg/parser/parser.go index 4296feb5..f7189a79 100644 --- a/pkg/parser/parser.go +++ b/pkg/parser/parser.go @@ -4,12 +4,18 @@ package parser import ( "strings" + "github.com/dharmab/numwords" "github.com/dharmab/skyeye/internal/parser/token" "github.com/dharmab/skyeye/pkg/brevity" - "github.com/rodaine/numwords" "github.com/rs/zerolog/log" ) +func init() { + numwords.IncludeFractions(false) + numwords.IncludeIndefiniteArticle(false) + numwords.IncludeSecond(false) +} + const ( // maxInputLength is the maximum length of input text to process. // Prevents processing extremely long inputs that may indicate garbage data. diff --git a/pkg/parser/radiocheck_test.go b/pkg/parser/radiocheck_test.go index c7d01cf9..3ff757fd 100644 --- a/pkg/parser/radiocheck_test.go +++ b/pkg/parser/radiocheck_test.go @@ -82,6 +82,12 @@ func TestParserRadioCheck(t *testing.T) { Callsign: "eagle 1", }, }, + { + text: "anyface half wit radio check", + expected: &brevity.RadioCheckRequest{ + Callsign: "half wit", + }, + }, } runParserTestCases(t, New(TestCallsign, true), testCases, func(t *testing.T, test parserTestCase, request any) { t.Helper() diff --git a/pkg/parser/spatial.go b/pkg/parser/spatial.go index e428fa54..157c1d71 100644 --- a/pkg/parser/spatial.go +++ b/pkg/parser/spatial.go @@ -1,11 +1,11 @@ package parser import ( + "github.com/dharmab/numwords" "github.com/dharmab/skyeye/internal/parser/token" "github.com/dharmab/skyeye/pkg/bearings" "github.com/dharmab/skyeye/pkg/brevity" "github.com/martinlindhe/unit" - "github.com/rodaine/numwords" "github.com/rs/zerolog/log" )