Skip to content

Commit 0af2477

Browse files
authoredAug 22, 2022
Merge pull request #285 from cmusphinx/make_samprate_an_int
Make -samprate an int after all these years
2 parents 87a3e2d + 3f3ef88 commit 0af2477

File tree

10 files changed

+28
-28
lines changed

10 files changed

+28
-28
lines changed
 

‎cython/_pocketsphinx.pyx

+1-1
Original file line numberDiff line numberDiff line change
@@ -738,7 +738,7 @@ cdef class Decoder:
738738
fsg(str): Path to FSG grammar file (only one of ``lm``, ``jsgf``,
739739
or ``fsg`` should be specified).
740740
toprule(str): Name of top-level rule in JSGF file to use as entry point.
741-
samprate(float): Sampling rate for raw audio data.
741+
samprate(int): Sampling rate for raw audio data.
742742
loglevel(str): Logging level, one of "INFO", "ERROR", "FATAL".
743743
logfn(str): File to write log messages to.
744744
Raises:

‎cython/test/config_test.py

+11-11
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,16 @@ class TestConfig(unittest.TestCase):
1212
def test_config(self):
1313
config = Decoder.default_config()
1414
intval = 256
15-
floatval = 8000.0
15+
floatval = 0.025
1616
stringval = "~/pocketsphinx"
1717
boolval = True
1818

1919
# Check values that was previously set.
20-
s = config.get_float("-samprate")
20+
s = config.get_float("-wlen")
2121
print("Float:", floatval, " ", s)
22-
self.assertEqual(s, 16000.0)
23-
config.set_float("-samprate", floatval)
24-
s = config.get_float("-samprate")
22+
self.assertEqual(s, 0.025625)
23+
config.set_float("-wlen", floatval)
24+
s = config.get_float("-wlen")
2525
self.assertEqual(s, floatval)
2626

2727
s = config.get_int("-nfft")
@@ -69,25 +69,25 @@ def test_config_file(self):
6969
class TestConfigHash(unittest.TestCase):
7070
def test_config__getitem(self):
7171
config = Config()
72-
self.assertEqual(config["samprate"], 16000.0)
72+
self.assertEqual(config["samprate"], 16000)
7373
self.assertEqual(config["nfft"], 0)
7474
self.assertEqual(config["fsg"], None)
7575
self.assertEqual(config["backtrace"], False)
7676
self.assertEqual(config["feat"], "1s_c_d_dd")
7777

7878
def test_config_easyinit(self):
79-
config = Config(samprate=11025.0, fsg=None, backtrace=False, feat="1s_c_d_dd")
80-
self.assertEqual(config["samprate"], 11025.0)
81-
self.assertEqual(config.get_float("-samprate"), 11025.0)
79+
config = Config(samprate=11025, fsg=None, backtrace=False, feat="1s_c_d_dd")
80+
self.assertEqual(config["samprate"], 11025)
81+
self.assertEqual(config.get_int("-samprate"), 11025)
8282
self.assertEqual(config["nfft"], 0)
8383
self.assertEqual(config["fsg"], None)
8484
self.assertEqual(config["backtrace"], False)
8585
self.assertEqual(config["feat"], "1s_c_d_dd")
8686

8787
def test_config_coercion(self):
8888
config = Config()
89-
config["samprate"] = 48000
90-
self.assertEqual(config["samprate"], 48000.0)
89+
config["samprate"] = 48000.0
90+
self.assertEqual(config["samprate"], 48000)
9191
config["nfft"] = "1024"
9292
self.assertEqual(config["nfft"], 1024)
9393

‎cython/test/decoder_test.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,11 @@ def test_reinit(self):
8383
decoder.add_word("_forward", "F AO R W ER D", True)
8484
self._run_decode(decoder)
8585
# should preserve dict words, but make decoding fail
86-
config.set_float("-samprate", 48000)
86+
config.set_int("-samprate", 48000)
8787
decoder.reinit_feat(config)
8888
self.assertEqual("F AO R W ER D", decoder.lookup_word("_forward"))
8989
self._run_decode(decoder, expect_fail=True)
90-
config.set_float("-samprate", 16000)
90+
config.set_int("-samprate", 16000)
9191
# should erase dict words
9292
decoder.reinit(config)
9393
self.assertEqual(None, decoder.lookup_word("_forward"))

‎docs/source/config_params.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ default values.
2525
:keyword bool smoothspec: Write out cepstral-smoothed logspectral files, defaults to ``False``
2626
:keyword str transform: Which type of transform to use to calculate cepstra (legacy, dct, or htk), defaults to ``legacy``
2727
:keyword float alpha: Preemphasis parameter, defaults to ``0.97``
28-
:keyword float samprate: Sampling rate, defaults to ``16000.0``
28+
:keyword int samprate: Sampling rate, defaults to ``16000``
2929
:keyword int frate: Frame rate, defaults to ``100``
3030
:keyword float wlen: Hamming window length, defaults to ``0.025625``
3131
:keyword int nfft: Size of FFT, or 0 to set automatically (recommended), defaults to ``0``

‎examples/live.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def main():
1717
hmm=os.path.join(MODELDIR, "en-us/en-us"),
1818
lm=os.path.join(MODELDIR, "en-us/en-us.lm.bin"),
1919
dict=os.path.join(MODELDIR, "en-us/cmudict-en-us.dict"),
20-
samprate=float(ep.sample_rate),
20+
samprate=ep.sample_rate,
2121
)
2222
soxcmd = f"sox -q -r {ep.sample_rate} -c 1 -b 16 -e signed-integer -d -t raw -"
2323
sox = subprocess.Popen(soxcmd.split(), stdout=subprocess.PIPE)

‎examples/simple.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,13 @@ main(int argc, char *argv[])
3939
E_FATAL("PocketSphinx decoder init failed\n");
4040
#define SOXCMD "sox -q -r %d -c 1 -b 16 -e signed-integer -d -t raw -"
4141
len = snprintf(NULL, 0, SOXCMD,
42-
(int)cmd_ln_float_r(config, "-samprate"));
42+
cmd_ln_int_r(config, "-samprate"));
4343
if ((soxcmd = malloc(len + 1)) == NULL)
4444
E_FATAL_SYSTEM("Failed to allocate string");
4545
if (signal(SIGINT, catch_sig) == SIG_ERR)
4646
E_FATAL_SYSTEM("Failed to set SIGINT handler");
4747
if (snprintf(soxcmd, len + 1, SOXCMD,
48-
(int)cmd_ln_float_r(config, "-samprate")) != len)
48+
cmd_ln_int_r(config, "-samprate")) != len)
4949
E_FATAL_SYSTEM("snprintf() failed");
5050
if ((sox = popen(soxcmd, "r")) == NULL)
5151
E_FATAL_SYSTEM("Failed to popen(%s)", soxcmd);

‎examples/simple.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
lm=os.path.join(MODELDIR, "en-us/en-us.lm.bin"),
1515
dict=os.path.join(MODELDIR, "en-us/cmudict-en-us.dict"),
1616
)
17-
sample_rate = int(decoder.config["samprate"])
17+
sample_rate = decoder.config["samprate"]
1818
soxcmd = f"sox -q -r {sample_rate} -c 1 -b 16 -e signed-integer -d -t raw -"
1919
with subprocess.Popen(soxcmd.split(), stdout=subprocess.PIPE) as sox:
2020
decoder.start_utt()

‎include/sphinxbase/fe.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ extern "C" {
8484
* DEFAULT_SAMPLING_RATE/DEFAULT_FRAME_RATE) */
8585
#define DEFAULT_FRAME_SHIFT 160
8686
/** Default size of each frame (410 samples @ 16000Hz). */
87-
#define DEFAULT_WINDOW_LENGTH 0.025625
87+
#define DEFAULT_WINDOW_LENGTH 0.025625
8888
/** Default number of FFT points. */
8989
#define DEFAULT_FFT_SIZE 512
9090
/** Default number of MFCC coefficients in output. */
@@ -132,7 +132,7 @@ extern "C" {
132132
"Preemphasis parameter" }, \
133133
\
134134
{ "-samprate", \
135-
ARG_FLOATING, \
135+
ARG_INTEGER, \
136136
ARG_STRINGIFY(DEFAULT_SAMPLING_RATE), \
137137
"Sampling rate" }, \
138138
\

‎programs/pocketsphinx_batch.c

+5-5
Original file line numberDiff line numberDiff line change
@@ -472,13 +472,13 @@ process_ctl_line(ps_decoder_t *ps, cmd_ln_t *config,
472472

473473
if (ef != -1) {
474474
ef = (int32)((ef - sf)
475-
* (cmd_ln_float32_r(config, "-samprate")
476-
/ cmd_ln_int32_r(config, "-frate"))
477-
+ (cmd_ln_float32_r(config, "-samprate")
478-
* cmd_ln_float32_r(config, "-wlen")));
475+
* ((double)cmd_ln_int_r(config, "-samprate")
476+
/ cmd_ln_int_r(config, "-frate"))
477+
+ ((double)cmd_ln_int_r(config, "-samprate")
478+
* cmd_ln_float_r(config, "-wlen")));
479479
}
480480
sf = (int32)(sf
481-
* (cmd_ln_float32_r(config, "-samprate")
481+
* ((double)cmd_ln_int_r(config, "-samprate")
482482
/ cmd_ln_int32_r(config, "-frate")));
483483
fseek(infh, cmd_ln_int32_r(config, "-adchdr") + sf * sizeof(int16), SEEK_SET);
484484
ps_decode_raw(ps, infh, ef);

‎src/fe/fe_interface.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,8 @@ fe_parse_general_params(cmd_ln_t *config, fe_t * fe)
6666
int j, frate, window_samples;
6767

6868
fe->config = cmd_ln_retain(config);
69-
fe->sampling_rate = cmd_ln_float32_r(config, "-samprate");
70-
frate = cmd_ln_int32_r(config, "-frate");
69+
fe->sampling_rate = cmd_ln_int_r(config, "-samprate");
70+
frate = cmd_ln_int_r(config, "-frate");
7171
if (frate > MAX_INT16 || frate > fe->sampling_rate || frate < 1) {
7272
E_ERROR
7373
("Frame rate %d can not be bigger than sample rate %.02f\n",

0 commit comments

Comments
 (0)
Please sign in to comment.