utterpy 0.0.6__tar.gz → 0.0.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,6 +4,16 @@ Notable changes to the wheel, newest first. The project follows semantic
4
4
  versioning; release dates are recorded by the git tags and the GitHub
5
5
  releases.
6
6
 
7
+ ## 0.0.7
8
+
9
+ - `SetMergeMargin(nats)`, from utter 0.0.7: where two paths with
10
+ different words meet in the search, the loser is kept when within
11
+ `nats` of the winner and listed among `partial_alternatives` and the
12
+ final's `alternatives`. Rank 0 and every endpoint are unchanged; 0 or
13
+ None removes it, and it is off by default.
14
+ - Python 3.15: tested in CI and listed in the classifiers. The abi3
15
+ wheels were already installable on it.
16
+
7
17
  ## 0.0.6
8
18
 
9
19
  - TitaNet-small speaker evidence, from utter 0.0.6: `SpkModel(path)`
@@ -37,9 +37,9 @@ dependencies = [
37
37
 
38
38
  [[package]]
39
39
  name = "pyo3"
40
- version = "0.29.2"
40
+ version = "0.30.1"
41
41
  source = "registry+https://github.com/rust-lang/crates.io-index"
42
- checksum = "4688ddedf473e32662b9b067670129a8afb8c18e351482c70d62ba4a88171e8b"
42
+ checksum = "229ca13b8a15bb0d1487b81ab975bfcd97513416499a8312011b6036e42e0de4"
43
43
  dependencies = [
44
44
  "libc",
45
45
  "once_cell",
@@ -51,18 +51,18 @@ dependencies = [
51
51
 
52
52
  [[package]]
53
53
  name = "pyo3-build-config"
54
- version = "0.29.2"
54
+ version = "0.30.1"
55
55
  source = "registry+https://github.com/rust-lang/crates.io-index"
56
- checksum = "f41027e41b4bd03f6e60f9f417fe24a6341a6bb744edd62b6f709f2a52ea30e9"
56
+ checksum = "70130e2b6dd1ee589a8788026a429561ca5c40fa7a2fa7914c2282eddae24700"
57
57
  dependencies = [
58
58
  "target-lexicon",
59
59
  ]
60
60
 
61
61
  [[package]]
62
62
  name = "pyo3-ffi"
63
- version = "0.29.2"
63
+ version = "0.30.1"
64
64
  source = "registry+https://github.com/rust-lang/crates.io-index"
65
- checksum = "e591a95526fead067432c3b3a33fc74770b87b1e04e73671090d9c2055a2b327"
65
+ checksum = "5e7ff73c555c286d212d4ce7e5fbda845a973c4f61bd5f160f5f2c3c2a04d1c4"
66
66
  dependencies = [
67
67
  "libc",
68
68
  "pyo3-build-config",
@@ -70,9 +70,9 @@ dependencies = [
70
70
 
71
71
  [[package]]
72
72
  name = "pyo3-macros"
73
- version = "0.29.2"
73
+ version = "0.30.1"
74
74
  source = "registry+https://github.com/rust-lang/crates.io-index"
75
- checksum = "73225868fc1cd84eef2c3c230ddb91273bf1de46aeb8a4248da76d32a0924a1c"
75
+ checksum = "c46d2e5862c7bb8207e3b639f713dda3c499933444784154c11d013c5a691b60"
76
76
  dependencies = [
77
77
  "proc-macro2",
78
78
  "pyo3-macros-backend",
@@ -82,9 +82,9 @@ dependencies = [
82
82
 
83
83
  [[package]]
84
84
  name = "pyo3-macros-backend"
85
- version = "0.29.2"
85
+ version = "0.30.1"
86
86
  source = "registry+https://github.com/rust-lang/crates.io-index"
87
- checksum = "571575aa3749fa6216757dd47d2a3e7ef360f329a40f0666a9fbd14889024952"
87
+ checksum = "38b89f066f2ae72a2aef52d1537ca2fcd104440ebfadee06e97aa90738a25b9b"
88
88
  dependencies = [
89
89
  "heck",
90
90
  "proc-macro2",
@@ -103,9 +103,9 @@ dependencies = [
103
103
 
104
104
  [[package]]
105
105
  name = "syn"
106
- version = "2.0.119"
106
+ version = "3.0.9"
107
107
  source = "registry+https://github.com/rust-lang/crates.io-index"
108
- checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
108
+ checksum = "d78c8dee4c7bf0e14673097256fed6142ce9d3b85a408189d07482442145823b"
109
109
  dependencies = [
110
110
  "proc-macro2",
111
111
  "quote",
@@ -126,13 +126,13 @@ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
126
126
 
127
127
  [[package]]
128
128
  name = "utter"
129
- version = "0.0.6"
129
+ version = "0.0.7"
130
130
  source = "registry+https://github.com/rust-lang/crates.io-index"
131
- checksum = "b7c2fcc627bdb733e73bc4a79adf7e943697dc6a4cfb24e79997505675fae232"
131
+ checksum = "605813c04049b949f14666340cc4c19ef77c9c0bc8194f464f456bbda0aaa18e"
132
132
 
133
133
  [[package]]
134
134
  name = "utterpy"
135
- version = "0.0.6"
135
+ version = "0.0.7"
136
136
  dependencies = [
137
137
  "pyo3",
138
138
  "utter",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "utterpy"
3
- version = "0.0.6"
3
+ version = "0.0.7"
4
4
  edition = "2021"
5
5
  rust-version = "1.93"
6
6
  license = "MIT"
@@ -13,8 +13,8 @@ name = "utterpy"
13
13
  crate-type = ["cdylib"]
14
14
 
15
15
  [dependencies]
16
- pyo3 = { version = "0.29", features = ["extension-module", "abi3-py39"] }
17
- utter = "0.0.6"
16
+ pyo3 = { version = "0.30", features = ["extension-module", "abi3-py39"] }
17
+ utter = "0.0.7"
18
18
 
19
19
 
20
20
  [profile.release]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: utterpy
3
- Version: 0.0.6
3
+ Version: 0.0.7
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: Implementation :: CPython
6
6
  Classifier: Programming Language :: Python :: 3.9
@@ -9,6 +9,7 @@ Classifier: Programming Language :: Python :: 3.11
9
9
  Classifier: Programming Language :: Python :: 3.12
10
10
  Classifier: Programming Language :: Python :: 3.13
11
11
  Classifier: Programming Language :: Python :: 3.14
12
+ Classifier: Programming Language :: Python :: 3.15
12
13
  Classifier: Topic :: Multimedia :: Sound/Audio :: Speech
13
14
  Classifier: Typing :: Typed
14
15
  License-File: LICENSE
@@ -224,7 +225,7 @@ sees the API without a separate stubs package.
224
225
 
225
226
  GitHub Actions builds wheels for Linux x86_64 and aarch64 (manylinux
226
227
  2_28 and musllinux 1.2), Windows x64 and arm64, and macOS x86_64 and
227
- arm64 on every push, runs the tests on Python 3.9 to 3.14, and on a
228
+ arm64 on every push, runs the tests on Python 3.9 to 3.15, and on a
228
229
  `v*` tag attaches them to a GitHub release with the notes under
229
230
  `docs/release-notes` as its body and publishes to PyPI through trusted
230
231
  publishing. Every wheel carries a build-provenance attestation, and the
@@ -206,7 +206,7 @@ sees the API without a separate stubs package.
206
206
 
207
207
  GitHub Actions builds wheels for Linux x86_64 and aarch64 (manylinux
208
208
  2_28 and musllinux 1.2), Windows x64 and arm64, and macOS x86_64 and
209
- arm64 on every push, runs the tests on Python 3.9 to 3.14, and on a
209
+ arm64 on every push, runs the tests on Python 3.9 to 3.15, and on a
210
210
  `v*` tag attaches them to a GitHub release with the notes under
211
211
  `docs/release-notes` as its body and publishes to PyPI through trusted
212
212
  publishing. Every wheel carries a build-provenance attestation, and the
@@ -4,7 +4,7 @@ build-backend = "maturin"
4
4
 
5
5
  [project]
6
6
  name = "utterpy"
7
- version = "0.0.6"
7
+ version = "0.0.7"
8
8
  description = "Python bindings for utter, the zero-dependency pure-Rust streaming speech decoder for Vosk (Kaldi nnet3) models"
9
9
  readme = "README.md"
10
10
  license = { file = "LICENSE" }
@@ -18,6 +18,7 @@ classifiers = [
18
18
  "Programming Language :: Python :: 3.12",
19
19
  "Programming Language :: Python :: 3.13",
20
20
  "Programming Language :: Python :: 3.14",
21
+ "Programming Language :: Python :: 3.15",
21
22
  "Topic :: Multimedia :: Sound/Audio :: Speech",
22
23
  "Typing :: Typed",
23
24
  ]
@@ -76,6 +76,13 @@ class KaldiRecognizer:
76
76
  frames are not. Such a final names "floor" as its endpoint. 0 or None removes the margin.
77
77
  """
78
78
 
79
+ def SetMergeMargin(self, nats: float | None) -> None:
80
+ """Keep a reading a merge overwrites when within nats of the path that wins it.
81
+
82
+ Kept readings are listed among partial_alternatives and the final's alternatives like
83
+ any other. Rank 0 is unchanged. 0 or None removes the margin.
84
+ """
85
+
79
86
  def SetPartialAlternatives(self, n: int) -> None: ...
80
87
  def SetMaxAlternatives(self, n: int) -> None: ...
81
88
  def AcceptWaveform(self, data: bytes) -> bool:
@@ -45,7 +45,7 @@ ok "tag $tag is free"
45
45
  [ "$(git config --get tag.gpgSign)" = true ] || fail "tag.gpgSign is not on; the tag must be signed"
46
46
  ok "tags are signed"
47
47
  # The workflow publishes only while this variable is true, so the PyPI checks follow it.
48
- pypi=$(gh variable get PYPI_PUBLISH 2>/dev/null || true)
48
+ pypi=$(gh api "repos/{owner}/{repo}/actions/variables/PYPI_PUBLISH" --jq .value 2>/dev/null || true)
49
49
  if [ "$pypi" = true ]; then
50
50
  code=$(curl -s -o /dev/null -w '%{http_code}' -A "utterpy release script" "https://pypi.org/pypi/utterpy/$version/json")
51
51
  [ "$code" = 404 ] || fail "PyPI answers $code for utterpy $version; expected 404 before publishing"
@@ -165,6 +165,11 @@ impl PyRecognizer {
165
165
  self.inner
166
166
  .set_endpoint_floor_margin(margin_db.filter(|&m| m > 0.0));
167
167
  }
168
+ /// Keep a reading a merge overwrites when within `nats` of the path that wins it, reported
169
+ /// among the partial's and the final's alternatives. Rank 0 is unchanged. 0 or None removes it.
170
+ fn SetMergeMargin(&mut self, nats: Option<f32>) {
171
+ self.inner.set_merge_margin(nats.filter(|&n| n > 0.0));
172
+ }
168
173
  fn SetPartialAlternatives(&mut self, n: usize) {
169
174
  self.inner.set_alternatives(n);
170
175
  }
File without changes
File without changes
File without changes