[Tts-project] Bug#1108634: unblock: speech-dispatcher/0.12.0-5
Samuel Thibault
sthibault at debian.org
Wed Jul 2 01:00:45 BST 2025
Package: release.debian.org
Severity: normal
X-Debbugs-Cc: speech-dispatcher at packages.debian.org
Control: affects -1 + src:speech-dispatcher
User: release.debian.org at packages.debian.org
Usertags: unblock
Hello,
I have uploaded speech-dispatcher/0.12.0-5 for Trixie.
[ Reason ]
Version 0.12.0 introduced a regression in punctuation processing.
Normally the user change choose between speech-synthesizing no
punctuation, some punctuation, most punctuation, or all punctuation,
dependening on the level of details they would like to hear at different
times. This however got broken in 0.12.0 when reworking the punctuation
processing. This got fixed in 0.12.1, but that version was released
after the Trixie freeze.
This is a regression over Bookworm.
[ Impact ]
As reported upstream on
https://github.com/brailcom/speechd/issues/1036
some speech syntheses would pronounce some punctuations, others
wouldn't, making the user experience really bad because they can't
really control any more the level of punctuation being spoken.
[ Tests ]
This was tested manually.
[ Risks ]
The code comes from upstream and is very simple, it reverts the faulty
commit
https://github.com/brailcom/speechd/commit/f9622994cbd43ce67f992f87337fbb0174792a21
and installs a better solution instead which boils down to two "if"s
https://github.com/brailcom/speechd/commit/7cd788acede8604d77f433c393510175ddf8eb43
The large diff of locale/base/symbols-fallback.dic and
locale/base/symbols.dic is actually just a mere file rename getting
reverted, without file content change.
There is also a trivial fix for the blhc report blaming FLAGS issues
which actually come from libtool.
[ Checklist ]
[X] all changes are documented in the d/changelog
[X] I reviewed all changes and I approve them
[X] attach debdiff against the package in testing
unblock speech-dispatcher/0.12.0-5
Thanks,
Samuel
-------------- next part --------------
diff -Nru speech-dispatcher-0.12.0/debian/changelog speech-dispatcher-0.12.0/debian/changelog
--- speech-dispatcher-0.12.0/debian/changelog 2025-05-06 21:23:58.000000000 +0200
+++ speech-dispatcher-0.12.0/debian/changelog 2025-07-02 01:34:43.000000000 +0200
@@ -1,3 +1,10 @@
+speech-dispatcher (0.12.0-5) unstable; urgency=medium
+
+ * rules: Be more precise in blhc ignore.
+ * patches/git-punctuation: Fix punctuation levels.
+
+ -- Samuel Thibault <sthibault at debian.org> Wed, 02 Jul 2025 01:34:43 +0200
+
speech-dispatcher (0.12.0-4) unstable; urgency=medium
* patches/git-generic-empty: Fix hang on empty uterances.
diff -Nru speech-dispatcher-0.12.0/debian/patches/git-punctuation speech-dispatcher-0.12.0/debian/patches/git-punctuation
--- speech-dispatcher-0.12.0/debian/patches/git-punctuation 1970-01-01 01:00:00.000000000 +0100
+++ speech-dispatcher-0.12.0/debian/patches/git-punctuation 2025-07-02 01:34:43.000000000 +0200
@@ -0,0 +1,1357 @@
+commit d5059639cb934c965cb752bfe46fb845c5adbce8
+Author: Samuel Thibault <samuel.thibault at ens-lyon.org>
+Date: Sun Apr 6 17:45:03 2025 +0200
+
+ Revert "Process base symbols after other dictionaries"
+
+ This reverts commit f9622994cbd43ce67f992f87337fbb0174792a21.
+
+ This was dropping the properties of the common NVDA symbols, such as
+
+ ? sentence ending question all always
+
+ which are not specified in all translated files, they assume that the
+ base file always provide them.
+
+ (cherry picked from commit feff809182f2bade36da1e610fc6bc02c167988e)
+
+commit 8a1eb8a334ef378be50cbc581a6dd393ec3dfd01
+Author: Samuel Thibault <samuel.thibault at ens-lyon.org>
+Date: Sun Apr 6 17:53:20 2025 +0200
+
+ Do not add symbols from base/symbols.dic when they are not in <locale>/symbols.dic
+
+ E.g. ? is in base/symbols.dic, but not in fr/symbols.dic, so we do not
+ want to take the definition from base/symbols.dic, and let emojis.dic
+ provide a definition.
+
+ This is the same goal as f9622994cbd43ce67f992f87337fbb0174792a21, but
+ without losing base/symbols.dic providing symbol default properties.
+
+ (cherry picked from commit 7cd788acede8604d77f433c393510175ddf8eb43)
+
+---
+ config/speechd.conf | 1
+ locale/Makefile.am | 2
+ locale/base/symbols-fallback.dic | 626 ---------------------------------------
+ locale/base/symbols.dic | 626 +++++++++++++++++++++++++++++++++++++++
+ src/server/symbols.c | 22 -
+ 5 files changed, 639 insertions(+), 638 deletions(-)
+
+--- a/config/speechd.conf
++++ b/config/speechd.conf
+@@ -174,7 +174,6 @@ SymbolsPreprocFile "symbols.dic"
+ SymbolsPreprocFile "emojis.dic"
+ SymbolsPreprocFile "orca.dic"
+ SymbolsPreprocFile "orca-chars.dic"
+-SymbolsPreprocFile "symbols-fallback.dic"
+
+ # The DefaultCapLetRecognition: if set to "spell", capital letters
+ # should be spelled (e.g. "capital b"), if set to "icon",
+--- a/locale/Makefile.am
++++ b/locale/Makefile.am
+@@ -19,7 +19,7 @@
+
+ nobase_localedata_DATA = \
+ base/font-variants.dic \
+- base/symbols-fallback.dic \
++ base/symbols.dic \
+ \
+ af/emojis.dic \
+ am/emojis.dic \
+--- a/src/server/symbols.c
++++ b/src/server/symbols.c
+@@ -855,7 +855,7 @@ static SpeechSymbolProcessor *speech_sym
+ SpeechSymbol *sym;
+
+ sym = g_hash_table_lookup(ssp->symbols, key);
+- if (!sym) {
++ if (!sym && syms != ssbase) {
+ /* This is a new simple symbol.
+ * (All complex symbols have already been added.) */
+ sym = speech_symbol_new();
+@@ -879,15 +879,17 @@ static SpeechSymbolProcessor *speech_sym
+ multi_chars_list = g_slist_prepend(multi_chars_list, sym->identifier);
+ }
+ }
+- /* If fields weren't explicitly specified, inherit the value from later sources. */
+- if (sym->replacement == NULL)
+- sym->replacement = g_strdup(source_sym->replacement);
+- if (sym->level == SYMLVL_INVALID)
+- sym->level = source_sym->level;
+- if (sym->preserve == SYMPRES_INVALID)
+- sym->preserve = source_sym->preserve;
+- if (sym->display_name == NULL)
+- sym->display_name = g_strdup(source_sym->display_name);
++ if (sym) {
++ /* If fields weren't explicitly specified, inherit the value from later sources. */
++ if (sym->replacement == NULL)
++ sym->replacement = g_strdup(source_sym->replacement);
++ if (sym->level == SYMLVL_INVALID)
++ sym->level = source_sym->level;
++ if (sym->preserve == SYMPRES_INVALID)
++ sym->preserve = source_sym->preserve;
++ if (sym->display_name == NULL)
++ sym->display_name = g_strdup(source_sym->display_name);
++ }
+ }
+ }
+
+--- a/locale/base/symbols-fallback.dic
++++ /dev/null
+@@ -1,626 +0,0 @@
+-?# This file was automatically generated by make import-symbols
+-# DO NOT MODIFY IT!
+-# See locale/README.md to know how to import dictionaries
+-
+-# A part of NonVisual Desktop Access (NVDA)
+-# Copyright (c) 2011-2023 NVDA Contributors
+-# This file is covered by the GNU General Public License.
+-
+-complexSymbols:
+-# identifier regexp
+-# Sentence endings.
+-. sentence ending (?<=[^\s.])\.(?=[\"'??)\s]|$)
+-! sentence ending (?<=[^\s!])\!(?=[\"'??)\s]|$)
+-? sentence ending (?<=[^\s?])\?(?=[\"'??)\s]|$)
+-# Phrase endings.
+-; phrase ending (?<=[^\s;]);(?=\s|$)
+-: phrase ending (?<=[^\s:]):(?=\s|$)
+-# Others
+-decimal point (?<![^\d -])\.(?=\d)
+-in-word ' (?<=[^\W_])['?]
+-negative number (?<!\w)[-?]{1}(?=[$???.]?\d)
+-
+-symbols:
+-# identifier replacement[[ level][ preserve]][ # display name]
+-
+-# Complex symbols
+-. sentence ending dot all always
+-! sentence ending bang all always
+-? sentence ending question all always
+-; phrase ending semi most always
+-: phrase ending colon most always
+-decimal point none always
+-in-word ' tick all norep
+-negative number minus none norep
+-
+-# Whitespace
+-\0 blank char # null
+-\t tab
+-\n line feed char
+-\f page break none
+-\r carriage return char
+- space char
+-? space char # no-break space
+-
+-# Standard punctuation/symbols
+-! bang all
+-" quote most
+-\# number some
+-$ dollar all norep
+-? pound all norep
+-? euro all norep
+-? cents all norep
+-? yen all norep
+-? rupee some norep
+-? florin all norep
+-? currency sign all norep
+-% percent some
+-? per mille some
+-& and some
+-' tick all
+-( left paren most always
+-) right paren most always
+-* star some
+-, comma all always
+-? ideographic comma all always
+-? arabic comma all always
+-- dash most always
+-. dot some
+-/ slash some
+-: colon most norep
+-; semi most
+-? arabic semicolon most
+-? question all
+-? arabic question mark all
+-@ at some
+-[ left bracket most
+-] right bracket most
+-\\ backslash most
+-^ caret most
+-_ line most
+-` graav most
+-{ left brace most
+-} right brace most
+-| bar most
+-? broken bar most
+-~ tilda most
+-? inverted exclamation point some
+-? inverted question mark some
+-? middle dot most
+-? single low quote most
+-? double low quote most
+-? prime some
+-? double prime some
+-? triple prime some
+-
+-# Other characters
+-? bullet some
+-? dot dot dot all always
+-... dot dot dot all always
+-? left quote most
+-? right quote most
+-? left tick most
+-? right tick most
+-? en dash most always
+-? em dash most always
+-? soft hyphen most
+-? hyphen bullet none
+-? circle most
+-? white circle most
+-? diaeresis most
+-? macron most
+-? acute most
+-? cedilla most
+-? left to right mark char
+-? right to left mark char
+-? paragraph marker most
+-? black square some
+-? black square some
+-? black square some
+-? white square some
+-? white bullet some
+-? right white arrow some
+-? right-pointing arrow some
+-? right arrowhead some
+-? black diamond minus white X some
+-? black club some
+-? black diamond some
+-? black diamond some
+-? section all
+-? degrees some
+-? double left pointing angle bracket most always
+-? double right pointing angle bracket most always
+-? micro some
+-? superscript 0 some
+-? superscript 1 some
+-? superscript 2 some
+-? superscript 3 some
+-? superscript 4 some
+-? superscript 5 some
+-? superscript 6 some
+-? superscript 7 some
+-? superscript 8 some
+-? superscript 9 some
+-? superscript plus some
+-? superscript equals some
+-? superscript left paren some
+-? superscript right paren some
+-? superscript n some
+-? subscript 0 some
+-? subscript 1 some
+-? subscript 2 some
+-? subscript 3 some
+-? subscript 4 some
+-? subscript 5 some
+-? subscript 6 some
+-? subscript 7 some
+-? subscript 8 some
+-? subscript 9 some
+-? subscript plus some
+-? subscript minus some
+-? subscript equals some
+-? subscript left paren some
+-? subscript right paren some
+-? registered some
+-? trademark some
+-? copyright some
+-? ServiceMark some
+-? left arrow some
+-? up arrow some
+-? right arrow some
+-? down arrow some
+-? check some
+-? check some
+-? right arrow some
+-? dagger some
+-? double dagger some
+-? triangular bullet none
+-? x-shaped bullet none
+-? circled plus none
+-? circled minus none
+-? right arrow over left arrow none
+-? double right arrow none
+-
+-#Arithmetic operators
+-+ plus some
+-? minus some
+-? times some
+-? times some
+-? times none
+-? divided by some
+-? divided by some
+-? divide by some
+-? minus or plus some
+-? plus or Minus some
+-
+-#Set operations
+-? set minus none
+-? set union none
+-? power set of the set none
+-? power set of the set none
+-? power set of the set none
+-? complement of the set none
+-
+-#Set relations and set constructions
+-? empty set none
+-? subset of none
+-? not a subset of none
+-? superset of none
+-? not a superset of none
+-? subset of or equal to none
+-? neither a subset of nor equal to none
+-? superset of or equal to none
+-? neither a superset of nor equal to none
+-? multiset none
+-
+-#Equality signs
+-= equals some
+-? asymptotically equal to none
+-? not asymptotically equal to none
+-? approximately equal to none
+-? approximately but not actually equal to none
+-? almost Equal to none
+-? all equal to none
+-? equivalent to none
+-? not equivalent to none
+-? geometrically equivalent to none
+-? geometrically equal to none
+-? equiangular to none
+-? between none
+-? not equal to none
+-? identical to none
+-? strictly identical to none
+-? not identical to none
+-? similar to none
+-? estimates none
+-? questioned equal to none
+-
+-#comparison signs
+-< less some
+-> greater some
+-? less- than or equal to none
+-? less- than or equal to none
+-? much smaller than none
+-? greater-than or equal to none
+-? greater-than or equal to none
+-? much bigger than none
+-? less than or greater than none
+-? greater than or less than none
+-? not less than none
+-? not greater than none
+-
+-#Functions
+-? inverse some
+-? ring Operator none
+-? partial derivative none
+-? gradient of none
+-
+-#Geometry and linear Algebra
+-? vector between none
+-? triangle none
+-? rectangle none
+-? right angle none
+-? angle none
+-? parallel to none
+-? not parallel to none
+-? perpendicular to none
+-? ortogonal to none
+-? norm of vector none
+-? normalizes none
+-? sine wave none
+-? measured Angle none
+-? spherical Angle none
+-
+-#Logical operators
+-? for all none
+-? there exists none
+-? there does not exist none
+-? does not imply none
+-? is implied by none
+-
+-#Other mathematical Operators
+-? element of none
+-? not an element of none
+-? small element of none
+-? contains as member none
+-? does not contain as member none
+-? small contains as member none
+-? end of proof none
+-? n-ary product none
+-? n-ary coproduct none
+-? n-ary summation none
+-? square root none
+-? cube root none
+-? fourth root none
+-? proportional to none
+-? infinity none
+-? and none
+-? or none
+-? not none
+-? intersection none
+-? union none
+-? integral none
+-? double Integral none
+-? triple Integral none
+-? contour Integral none
+-? surface Integral none
+-? volume Integral none
+-? clockwise Integral none
+-? clockwise contour Integral none
+-? anticlockwise Contour Integral none
+-? therefore none
+-? because none
+-? ratio none
+-? proportion none
+-? excess none
+-? geometric proportion none
+-? wreath product none
+-? difference between none
+-? approaches the limit none
+-? bullet Operator none
+-? divides none
+-? does not divide none
+-? colon equals none
+-? equals colon none
+-? precedes none
+-? succeeds none
+-? does not precede none
+-? does not succeed none
+-
+-# Vulgar Fractions U+2150 to U+215E
+-? one quarter none
+-? one half none
+-? three quarters none
+-? one seventh none
+-? one ninth none
+-? one tenth none
+-? one third none
+-? two thirds none
+-? one fifth none
+-? two fifths none
+-? three fifths none
+-? four fifths none
+-? one sixth none
+-? five sixths none
+-? one eighth none
+-? three eights none
+-? five eighths none
+-? seven eighths none
+-
+-#Number sets
+-? algebraic numbers none
+-? complex numbers none
+-? imaginary part of complex number none
+-? quaternions none
+-? natural numbers none
+-? nonnegative (whole) numbers none
+-? rational numbers none
+-? real numbers none
+-? real part of complex number none
+-? integers none
+-? aleph number none
+-? beth number none
+-
+-# Miscellaneous Technical
+-? mac Command key none
+-? mac Option key none
+-
+-## 6-dot cell
+-### note: the character on the next line is U+2800 (braille space), not U+0020 (ASCII space)
+-? space
+-? braille 1
+-? braille 2
+-? braille 1 2
+-? braille 3
+-? braille 1 3
+-? braille 2 3
+-? braille 1 2 3
+-? braille 4
+-? braille 1 4
+-? braille 2 4
+-? braille 1 2 4
+-? braille 3 4
+-? braille 1 3 4
+-? braille 2 3 4
+-? braille 1 2 3 4
+-? braille 5
+-? braille 1 5
+-? braille 2 5
+-? braille 1 2 5
+-? braille 3 5
+-? braille 1 3 5
+-? braille 2 3 5
+-? braille 1 2 3 5
+-? braille 4 5
+-? braille 1 4 5
+-? braille 2 4 5
+-? braille 1 2 4 5
+-? braille 3 4 5
+-? braille 1 3 4 5
+-? braille 2 3 4 5
+-? braille 1 2 3 4 5
+-? braille 6
+-? braille 1 6
+-? braille 2 6
+-? braille 1 2 6
+-? braille 3 6
+-? braille 1 3 6
+-? braille 2 3 6
+-? braille 1 2 3 6
+-? braille 4 6
+-? braille 1 4 6
+-? braille 2 4 6
+-? braille 1 2 4 6
+-? braille 3 4 6
+-? braille 1 3 4 6
+-? braille 2 3 4 6
+-? braille 1 2 3 4 6
+-? braille 5 6
+-? braille 1 5 6
+-? braille 2 5 6
+-? braille 1 2 5 6
+-? braille 3 5 6
+-? braille 1 3 5 6
+-? braille 2 3 5 6
+-? braille 1 2 3 5 6
+-? braille 4 5 6
+-? braille 1 4 5 6
+-? braille 2 4 5 6
+-? braille 1 2 4 5 6
+-? braille 3 4 5 6
+-? braille 1 3 4 5 6
+-? braille 2 3 4 5 6
+-? braille 1 2 3 4 5 6
+-## 8-braille cell
+-? braille 7
+-? braille 1 7
+-? braille 2 7
+-? braille 1 2 7
+-? braille 3 7
+-? braille 1 3 7
+-? braille 2 3 7
+-? braille 1 2 3 7
+-? braille 4 7
+-? braille 1 4 7
+-? braille 2 4 7
+-? braille 1 2 4 7
+-? braille 3 4 7
+-? braille 1 3 4 7
+-? braille 2 3 4 7
+-? braille 1 2 3 4 7
+-? braille 5 7
+-? braille 1 5 7
+-? braille 2 5 7
+-? braille 1 2 5 7
+-? braille 3 5 7
+-? braille 1 3 5 7
+-? braille 2 3 5 7
+-? braille 1 2 3 5 7
+-? braille 4 5 7
+-? braille 1 4 5 7
+-? braille 2 4 5 7
+-? braille 1 2 4 5 7
+-? braille 3 4 5 7
+-? braille 1 3 4 5 7
+-? braille 2 3 4 5 7
+-? braille 1 2 3 4 5 7
+-? braille 6 7
+-? braille 1 6 7
+-? braille 2 6 7
+-? braille 1 2 6 7
+-? braille 3 6 7
+-? braille 1 3 6 7
+-? braille 2 3 6 7
+-? braille 1 2 3 6 7
+-? braille 4 6 7
+-? braille 1 4 6 7
+-? braille 2 4 6 7
+-? braille 1 2 4 6 7
+-? braille 3 4 6 7
+-? braille 1 3 4 6 7
+-? braille 2 3 4 6 7
+-? braille 1 2 3 4 6 7
+-? braille 5 6 7
+-? braille 1 5 6 7
+-? braille 2 5 6 7
+-? braille 1 2 5 6 7
+-? braille 3 5 6 7
+-? braille 1 3 5 6 7
+-? braille 2 3 5 6 7
+-? braille 1 2 3 5 6 7
+-? braille 1 2 3 7
+-? braille 1 4 5 6 7
+-? braille 2 4 5 6 7
+-? braille 1 2 4 5 6 7
+-? braille 3 4 5 6 7
+-? braille 1 3 4 5 6 7
+-? braille 2 3 4 5 6 7
+-? braille 1 2 3 4 5 6 7
+-? braille 8
+-? braille 1 8
+-? braille 2 8
+-? braille 1 2 8
+-? braille 3 8
+-? braille 1 3 8
+-? braille 2 3 8
+-? braille 1 2 3 8
+-? braille 4 8
+-? braille 1 4 8
+-? braille 2 4 8
+-? braille 1 2 4 8
+-? braille 3 4 8
+-? braille 1 3 4 8
+-? braille 2 3 4 8
+-? braille 1 2 3 4 8
+-? braille 5 8
+-? braille 1 5 8
+-? braille 2 5 8
+-? braille 1 2 5 8
+-? braille 3 5 8
+-? braille 1 3 5 8
+-? braille 2 3 5 8
+-? braille 1 2 3 5 8
+-? braille 4 5 8
+-? braille 1 4 5 8
+-? braille 2 4 5 8
+-? braille 1 2 4 5 8
+-? braille 3 4 5 8
+-? braille 1 3 4 5 8
+-? braille 2 3 4 5 8
+-? braille 1 2 3 4 5 8
+-? braille 6 8
+-? braille 1 6 8
+-? braille 2 6 8
+-? braille 1 2 6 8
+-? braille 3 6 8
+-? braille 1 3 6 8
+-? braille 2 3 6 8
+-? braille 1 2 3 6 8
+-? braille 4 6 8
+-? braille 1 4 6 8
+-? braille 2 4 6 8
+-? braille 1 2 4 6 8
+-? braille 3 4 6 8
+-? braille 1 3 4 6 8
+-? braille 2 3 4 6 8
+-? braille 1 2 3 4 6 8
+-? braille 5 6 8
+-? braille 1 5 6 8
+-? braille 2 5 6 8
+-? braille 1 2 5 6 8
+-? braille 3 5 6 8
+-? braille 1 3 5 6 8
+-? braille 2 3 5 6 8
+-? braille 1 2 3 5 6 8
+-? braille 1 2 3 8
+-? braille 1 4 5 6 8
+-? braille 2 4 5 6 8
+-? braille 1 2 4 5 6 8
+-? braille 3 4 5 6 8
+-? braille 1 3 4 5 6 8
+-? braille 2 3 4 5 6 8
+-? braille 1 2 3 4 5 6 8
+-? braille 7 8
+-? braille 1 7 8
+-? braille 2 7 8
+-? braille 1 2 7 8
+-? braille 3 7 8
+-? braille 1 3 7 8
+-? braille 2 3 7 8
+-? braille 1 2 3 7 8
+-? braille 4 7 8
+-? braille 1 4 7 8
+-? braille 2 4 7 8
+-? braille 1 2 4 7 8
+-? braille 3 4 7 8
+-? braille 1 3 4 7 8
+-? braille 2 3 4 7 8
+-? braille 1 2 3 4 7 8
+-? braille 5 7 8
+-? braille 1 5 7 8
+-? braille 2 5 7 8
+-? braille 1 2 5 7 8
+-? braille 3 5 7 8
+-? braille 1 3 5 7 8
+-? braille 2 3 5 7 8
+-? braille 1 2 3 5 7 8
+-? braille 4 5 7 8
+-? braille 1 4 5 7 8
+-? braille 2 4 5 7 8
+-? braille 1 2 4 5 7 8
+-? braille 3 4 5 7 8
+-? braille 1 3 4 5 7 8
+-? braille 2 3 4 5 7 8
+-? braille 1 2 3 4 5 7 8
+-? braille 6 7 8
+-? braille 1 6 7 8
+-? braille 2 6 7 8
+-? braille 1 2 6 7 8
+-? braille 3 6 7 8
+-? braille 1 3 6 7 8
+-? braille 2 3 6 7 8
+-? braille 1 2 3 6 7 8
+-? braille 4 6 7 8
+-? braille 1 4 6 7 8
+-? braille 2 4 6 7 8
+-? braille 1 2 4 6 7 8
+-? braille 3 4 6 7 8
+-? braille 1 3 4 6 7 8
+-? braille 2 3 4 6 7 8
+-? braille 1 2 3 4 6 7 8
+-? braille 5 6 7 8
+-? braille 1 5 6 7 8
+-? braille 2 5 6 7 8
+-? braille 1 2 5 6 7 8
+-? braille 3 5 6 7 8
+-? braille 1 3 5 6 7 8
+-? braille 2 3 5 6 7 8
+-? braille 1 2 3 5 6 7 8
+-? braille 1 2 3 7 8
+-? braille 1 4 5 6 7 8
+-? braille 2 4 5 6 7 8
+-? braille 1 2 4 5 6 7 8
+-? braille 3 4 5 6 7 8
+-? braille 1 3 4 5 6 7 8
+-? braille 2 3 4 5 6 7 8
+-? braille 1 2 3 4 5 6 7 8
+--- /dev/null
++++ b/locale/base/symbols.dic
+@@ -0,0 +1,626 @@
++?# This file was automatically generated by make import-symbols
++# DO NOT MODIFY IT!
++# See locale/README.md to know how to import dictionaries
++
++# A part of NonVisual Desktop Access (NVDA)
++# Copyright (c) 2011-2023 NVDA Contributors
++# This file is covered by the GNU General Public License.
++
++complexSymbols:
++# identifier regexp
++# Sentence endings.
++. sentence ending (?<=[^\s.])\.(?=[\"'??)\s]|$)
++! sentence ending (?<=[^\s!])\!(?=[\"'??)\s]|$)
++? sentence ending (?<=[^\s?])\?(?=[\"'??)\s]|$)
++# Phrase endings.
++; phrase ending (?<=[^\s;]);(?=\s|$)
++: phrase ending (?<=[^\s:]):(?=\s|$)
++# Others
++decimal point (?<![^\d -])\.(?=\d)
++in-word ' (?<=[^\W_])['?]
++negative number (?<!\w)[-?]{1}(?=[$???.]?\d)
++
++symbols:
++# identifier replacement[[ level][ preserve]][ # display name]
++
++# Complex symbols
++. sentence ending dot all always
++! sentence ending bang all always
++? sentence ending question all always
++; phrase ending semi most always
++: phrase ending colon most always
++decimal point none always
++in-word ' tick all norep
++negative number minus none norep
++
++# Whitespace
++\0 blank char # null
++\t tab
++\n line feed char
++\f page break none
++\r carriage return char
++ space char
++? space char # no-break space
++
++# Standard punctuation/symbols
++! bang all
++" quote most
++\# number some
++$ dollar all norep
++? pound all norep
++? euro all norep
++? cents all norep
++? yen all norep
++? rupee some norep
++? florin all norep
++? currency sign all norep
++% percent some
++? per mille some
++& and some
++' tick all
++( left paren most always
++) right paren most always
++* star some
++, comma all always
++? ideographic comma all always
++? arabic comma all always
++- dash most always
++. dot some
++/ slash some
++: colon most norep
++; semi most
++? arabic semicolon most
++? question all
++? arabic question mark all
++@ at some
++[ left bracket most
++] right bracket most
++\\ backslash most
++^ caret most
++_ line most
++` graav most
++{ left brace most
++} right brace most
++| bar most
++? broken bar most
++~ tilda most
++? inverted exclamation point some
++? inverted question mark some
++? middle dot most
++? single low quote most
++? double low quote most
++? prime some
++? double prime some
++? triple prime some
++
++# Other characters
++? bullet some
++? dot dot dot all always
++... dot dot dot all always
++? left quote most
++? right quote most
++? left tick most
++? right tick most
++? en dash most always
++? em dash most always
++? soft hyphen most
++? hyphen bullet none
++? circle most
++? white circle most
++? diaeresis most
++? macron most
++? acute most
++? cedilla most
++? left to right mark char
++? right to left mark char
++? paragraph marker most
++? black square some
++? black square some
++? black square some
++? white square some
++? white bullet some
++? right white arrow some
++? right-pointing arrow some
++? right arrowhead some
++? black diamond minus white X some
++? black club some
++? black diamond some
++? black diamond some
++? section all
++? degrees some
++? double left pointing angle bracket most always
++? double right pointing angle bracket most always
++? micro some
++? superscript 0 some
++? superscript 1 some
++? superscript 2 some
++? superscript 3 some
++? superscript 4 some
++? superscript 5 some
++? superscript 6 some
++? superscript 7 some
++? superscript 8 some
++? superscript 9 some
++? superscript plus some
++? superscript equals some
++? superscript left paren some
++? superscript right paren some
++? superscript n some
++? subscript 0 some
++? subscript 1 some
++? subscript 2 some
++? subscript 3 some
++? subscript 4 some
++? subscript 5 some
++? subscript 6 some
++? subscript 7 some
++? subscript 8 some
++? subscript 9 some
++? subscript plus some
++? subscript minus some
++? subscript equals some
++? subscript left paren some
++? subscript right paren some
++? registered some
++? trademark some
++? copyright some
++? ServiceMark some
++? left arrow some
++? up arrow some
++? right arrow some
++? down arrow some
++? check some
++? check some
++? right arrow some
++? dagger some
++? double dagger some
++? triangular bullet none
++? x-shaped bullet none
++? circled plus none
++? circled minus none
++? right arrow over left arrow none
++? double right arrow none
++
++#Arithmetic operators
+++ plus some
++? minus some
++? times some
++? times some
++? times none
++? divided by some
++? divided by some
++? divide by some
++? minus or plus some
++? plus or Minus some
++
++#Set operations
++? set minus none
++? set union none
++? power set of the set none
++? power set of the set none
++? power set of the set none
++? complement of the set none
++
++#Set relations and set constructions
++? empty set none
++? subset of none
++? not a subset of none
++? superset of none
++? not a superset of none
++? subset of or equal to none
++? neither a subset of nor equal to none
++? superset of or equal to none
++? neither a superset of nor equal to none
++? multiset none
++
++#Equality signs
++= equals some
++? asymptotically equal to none
++? not asymptotically equal to none
++? approximately equal to none
++? approximately but not actually equal to none
++? almost Equal to none
++? all equal to none
++? equivalent to none
++? not equivalent to none
++? geometrically equivalent to none
++? geometrically equal to none
++? equiangular to none
++? between none
++? not equal to none
++? identical to none
++? strictly identical to none
++? not identical to none
++? similar to none
++? estimates none
++? questioned equal to none
++
++#comparison signs
++< less some
++> greater some
++? less- than or equal to none
++? less- than or equal to none
++? much smaller than none
++? greater-than or equal to none
++? greater-than or equal to none
++? much bigger than none
++? less than or greater than none
++? greater than or less than none
++? not less than none
++? not greater than none
++
++#Functions
++? inverse some
++? ring Operator none
++? partial derivative none
++? gradient of none
++
++#Geometry and linear Algebra
++? vector between none
++? triangle none
++? rectangle none
++? right angle none
++? angle none
++? parallel to none
++? not parallel to none
++? perpendicular to none
++? ortogonal to none
++? norm of vector none
++? normalizes none
++? sine wave none
++? measured Angle none
++? spherical Angle none
++
++#Logical operators
++? for all none
++? there exists none
++? there does not exist none
++? does not imply none
++? is implied by none
++
++#Other mathematical Operators
++? element of none
++? not an element of none
++? small element of none
++? contains as member none
++? does not contain as member none
++? small contains as member none
++? end of proof none
++? n-ary product none
++? n-ary coproduct none
++? n-ary summation none
++? square root none
++? cube root none
++? fourth root none
++? proportional to none
++? infinity none
++? and none
++? or none
++? not none
++? intersection none
++? union none
++? integral none
++? double Integral none
++? triple Integral none
++? contour Integral none
++? surface Integral none
++? volume Integral none
++? clockwise Integral none
++? clockwise contour Integral none
++? anticlockwise Contour Integral none
++? therefore none
++? because none
++? ratio none
++? proportion none
++? excess none
++? geometric proportion none
++? wreath product none
++? difference between none
++? approaches the limit none
++? bullet Operator none
++? divides none
++? does not divide none
++? colon equals none
++? equals colon none
++? precedes none
++? succeeds none
++? does not precede none
++? does not succeed none
++
++# Vulgar Fractions U+2150 to U+215E
++? one quarter none
++? one half none
++? three quarters none
++? one seventh none
++? one ninth none
++? one tenth none
++? one third none
++? two thirds none
++? one fifth none
++? two fifths none
++? three fifths none
++? four fifths none
++? one sixth none
++? five sixths none
++? one eighth none
++? three eights none
++? five eighths none
++? seven eighths none
++
++#Number sets
++? algebraic numbers none
++? complex numbers none
++? imaginary part of complex number none
++? quaternions none
++? natural numbers none
++? nonnegative (whole) numbers none
++? rational numbers none
++? real numbers none
++? real part of complex number none
++? integers none
++? aleph number none
++? beth number none
++
++# Miscellaneous Technical
++? mac Command key none
++? mac Option key none
++
++## 6-dot cell
++### note: the character on the next line is U+2800 (braille space), not U+0020 (ASCII space)
++? space
++? braille 1
++? braille 2
++? braille 1 2
++? braille 3
++? braille 1 3
++? braille 2 3
++? braille 1 2 3
++? braille 4
++? braille 1 4
++? braille 2 4
++? braille 1 2 4
++? braille 3 4
++? braille 1 3 4
++? braille 2 3 4
++? braille 1 2 3 4
++? braille 5
++? braille 1 5
++? braille 2 5
++? braille 1 2 5
++? braille 3 5
++? braille 1 3 5
++? braille 2 3 5
++? braille 1 2 3 5
++? braille 4 5
++? braille 1 4 5
++? braille 2 4 5
++? braille 1 2 4 5
++? braille 3 4 5
++? braille 1 3 4 5
++? braille 2 3 4 5
++? braille 1 2 3 4 5
++? braille 6
++? braille 1 6
++? braille 2 6
++? braille 1 2 6
++? braille 3 6
++? braille 1 3 6
++? braille 2 3 6
++? braille 1 2 3 6
++? braille 4 6
++? braille 1 4 6
++? braille 2 4 6
++? braille 1 2 4 6
++? braille 3 4 6
++? braille 1 3 4 6
++? braille 2 3 4 6
++? braille 1 2 3 4 6
++? braille 5 6
++? braille 1 5 6
++? braille 2 5 6
++? braille 1 2 5 6
++? braille 3 5 6
++? braille 1 3 5 6
++? braille 2 3 5 6
++? braille 1 2 3 5 6
++? braille 4 5 6
++? braille 1 4 5 6
++? braille 2 4 5 6
++? braille 1 2 4 5 6
++? braille 3 4 5 6
++? braille 1 3 4 5 6
++? braille 2 3 4 5 6
++? braille 1 2 3 4 5 6
++## 8-braille cell
++? braille 7
++? braille 1 7
++? braille 2 7
++? braille 1 2 7
++? braille 3 7
++? braille 1 3 7
++? braille 2 3 7
++? braille 1 2 3 7
++? braille 4 7
++? braille 1 4 7
++? braille 2 4 7
++? braille 1 2 4 7
++? braille 3 4 7
++? braille 1 3 4 7
++? braille 2 3 4 7
++? braille 1 2 3 4 7
++? braille 5 7
++? braille 1 5 7
++? braille 2 5 7
++? braille 1 2 5 7
++? braille 3 5 7
++? braille 1 3 5 7
++? braille 2 3 5 7
++? braille 1 2 3 5 7
++? braille 4 5 7
++? braille 1 4 5 7
++? braille 2 4 5 7
++? braille 1 2 4 5 7
++? braille 3 4 5 7
++? braille 1 3 4 5 7
++? braille 2 3 4 5 7
++? braille 1 2 3 4 5 7
++? braille 6 7
++? braille 1 6 7
++? braille 2 6 7
++? braille 1 2 6 7
++? braille 3 6 7
++? braille 1 3 6 7
++? braille 2 3 6 7
++? braille 1 2 3 6 7
++? braille 4 6 7
++? braille 1 4 6 7
++? braille 2 4 6 7
++? braille 1 2 4 6 7
++? braille 3 4 6 7
++? braille 1 3 4 6 7
++? braille 2 3 4 6 7
++? braille 1 2 3 4 6 7
++? braille 5 6 7
++? braille 1 5 6 7
++? braille 2 5 6 7
++? braille 1 2 5 6 7
++? braille 3 5 6 7
++? braille 1 3 5 6 7
++? braille 2 3 5 6 7
++? braille 1 2 3 5 6 7
++? braille 1 2 3 7
++? braille 1 4 5 6 7
++? braille 2 4 5 6 7
++? braille 1 2 4 5 6 7
++? braille 3 4 5 6 7
++? braille 1 3 4 5 6 7
++? braille 2 3 4 5 6 7
++? braille 1 2 3 4 5 6 7
++? braille 8
++? braille 1 8
++? braille 2 8
++? braille 1 2 8
++? braille 3 8
++? braille 1 3 8
++? braille 2 3 8
++? braille 1 2 3 8
++? braille 4 8
++? braille 1 4 8
++? braille 2 4 8
++? braille 1 2 4 8
++? braille 3 4 8
++? braille 1 3 4 8
++? braille 2 3 4 8
++? braille 1 2 3 4 8
++? braille 5 8
++? braille 1 5 8
++? braille 2 5 8
++? braille 1 2 5 8
++? braille 3 5 8
++? braille 1 3 5 8
++? braille 2 3 5 8
++? braille 1 2 3 5 8
++? braille 4 5 8
++? braille 1 4 5 8
++? braille 2 4 5 8
++? braille 1 2 4 5 8
++? braille 3 4 5 8
++? braille 1 3 4 5 8
++? braille 2 3 4 5 8
++? braille 1 2 3 4 5 8
++? braille 6 8
++? braille 1 6 8
++? braille 2 6 8
++? braille 1 2 6 8
++? braille 3 6 8
++? braille 1 3 6 8
++? braille 2 3 6 8
++? braille 1 2 3 6 8
++? braille 4 6 8
++? braille 1 4 6 8
++? braille 2 4 6 8
++? braille 1 2 4 6 8
++? braille 3 4 6 8
++? braille 1 3 4 6 8
++? braille 2 3 4 6 8
++? braille 1 2 3 4 6 8
++? braille 5 6 8
++? braille 1 5 6 8
++? braille 2 5 6 8
++? braille 1 2 5 6 8
++? braille 3 5 6 8
++? braille 1 3 5 6 8
++? braille 2 3 5 6 8
++? braille 1 2 3 5 6 8
++? braille 1 2 3 8
++? braille 1 4 5 6 8
++? braille 2 4 5 6 8
++? braille 1 2 4 5 6 8
++? braille 3 4 5 6 8
++? braille 1 3 4 5 6 8
++? braille 2 3 4 5 6 8
++? braille 1 2 3 4 5 6 8
++? braille 7 8
++? braille 1 7 8
++? braille 2 7 8
++? braille 1 2 7 8
++? braille 3 7 8
++? braille 1 3 7 8
++? braille 2 3 7 8
++? braille 1 2 3 7 8
++? braille 4 7 8
++? braille 1 4 7 8
++? braille 2 4 7 8
++? braille 1 2 4 7 8
++? braille 3 4 7 8
++? braille 1 3 4 7 8
++? braille 2 3 4 7 8
++? braille 1 2 3 4 7 8
++? braille 5 7 8
++? braille 1 5 7 8
++? braille 2 5 7 8
++? braille 1 2 5 7 8
++? braille 3 5 7 8
++? braille 1 3 5 7 8
++? braille 2 3 5 7 8
++? braille 1 2 3 5 7 8
++? braille 4 5 7 8
++? braille 1 4 5 7 8
++? braille 2 4 5 7 8
++? braille 1 2 4 5 7 8
++? braille 3 4 5 7 8
++? braille 1 3 4 5 7 8
++? braille 2 3 4 5 7 8
++? braille 1 2 3 4 5 7 8
++? braille 6 7 8
++? braille 1 6 7 8
++? braille 2 6 7 8
++? braille 1 2 6 7 8
++? braille 3 6 7 8
++? braille 1 3 6 7 8
++? braille 2 3 6 7 8
++? braille 1 2 3 6 7 8
++? braille 4 6 7 8
++? braille 1 4 6 7 8
++? braille 2 4 6 7 8
++? braille 1 2 4 6 7 8
++? braille 3 4 6 7 8
++? braille 1 3 4 6 7 8
++? braille 2 3 4 6 7 8
++? braille 1 2 3 4 6 7 8
++? braille 5 6 7 8
++? braille 1 5 6 7 8
++? braille 2 5 6 7 8
++? braille 1 2 5 6 7 8
++? braille 3 5 6 7 8
++? braille 1 3 5 6 7 8
++? braille 2 3 5 6 7 8
++? braille 1 2 3 5 6 7 8
++? braille 1 2 3 7 8
++? braille 1 4 5 6 7 8
++? braille 2 4 5 6 7 8
++? braille 1 2 4 5 6 7 8
++? braille 3 4 5 6 7 8
++? braille 1 3 4 5 6 7 8
++? braille 2 3 4 5 6 7 8
++? braille 1 2 3 4 5 6 7 8
diff -Nru speech-dispatcher-0.12.0/debian/patches/series speech-dispatcher-0.12.0/debian/patches/series
--- speech-dispatcher-0.12.0/debian/patches/series 2025-05-06 21:20:14.000000000 +0200
+++ speech-dispatcher-0.12.0/debian/patches/series 2025-07-02 01:34:43.000000000 +0200
@@ -3,3 +3,4 @@
mbrola-paths
output-stuck
git-generic-empty
+git-punctuation
diff -Nru speech-dispatcher-0.12.0/debian/rules speech-dispatcher-0.12.0/debian/rules
--- speech-dispatcher-0.12.0/debian/rules 2025-04-10 10:30:05.000000000 +0200
+++ speech-dispatcher-0.12.0/debian/rules 2025-06-21 17:35:20.000000000 +0200
@@ -48,9 +48,14 @@
override_dh_auto_configure-indep: config/modules/espeak-ng-mbrola-generic.conf
dh_auto_configure -- $(CONFIGURE)
-override_dh_auto_install:
+override_dh_auto_build:
# Bug#950793
- @echo blhc: ignore-line-regexp: libtool: link:.*
+ @echo blhc: ignore-line-regexp: '.* "sd_.*S.c".*'
+ @echo blhc: ignore-line-regexp: '.* -o .libs/libspeechd_module.so.*'
+ @echo blhc: ignore-line-regexp: '.* -o .libs/sd_.*'
+ dh_auto_build
+
+override_dh_auto_install:
dh_auto_install --destdir=debian/tmp
ifeq ($(DEB_SOURCE),speech-dispatcher)
More information about the Tts-project
mailing list