forked from pool/pocketsphinx
- Use update-alternatives for the man pages - pocketsphinx-devel now conflicts with pocketsphinx5-devel - python3-pocketsphinx now conflicts with python3-pocketsphinx5 and python3-pocketsphinx-python <= 0.1.3 - Fixes for symbol-not-found errors in the python3 port and a small fix to use python3 in another python call. Updated patch: * use-python3.patch OBS-URL: https://build.opensuse.org/request/show/788654 OBS-URL: https://build.opensuse.org/package/show/multimedia:voice-assistant/pocketsphinx?expand=0&rev=11
215 lines
8.5 KiB
Diff
215 lines
8.5 KiB
Diff
Index: pocketsphinx-0.8/python/Makefile.am
|
|
===================================================================
|
|
--- pocketsphinx-0.8.orig/python/Makefile.am
|
|
+++ pocketsphinx-0.8/python/Makefile.am
|
|
@@ -13,7 +13,7 @@ noinst_HEADERS = bogus_pygobject.h
|
|
|
|
if BUILD_PYTHON
|
|
# Setuptools isn't really compatible with distutils, unfortunately
|
|
-SETUPTOOLS_CRAP = `python -c 'import setuptools' 2>/dev/null \
|
|
+SETUPTOOLS_CRAP = `python3 -c 'import setuptools' 2>/dev/null \
|
|
&& echo --single-version-externally-managed --record filelist.txt`
|
|
|
|
all-local: pymod-build-stamp
|
|
@@ -40,5 +40,5 @@ endif
|
|
|
|
if BUILD_CYTHON
|
|
$(srcdir)/pocketsphinx.c: $(srcdir)/pocketsphinx.pyx $(srcdir)/pocketsphinx.pxd
|
|
- cython -o $@ $< $(CPPFLAGS) -I$(sphinxbase)/python
|
|
+ cython -3 -o $@ $< $(CPPFLAGS) -I$(sphinxbase)/python
|
|
endif
|
|
Index: pocketsphinx-0.8/python/Makefile.in
|
|
===================================================================
|
|
--- pocketsphinx-0.8.orig/python/Makefile.in
|
|
+++ pocketsphinx-0.8/python/Makefile.in
|
|
@@ -217,7 +217,7 @@ pkginclude_HEADERS = pocketsphinx.pxd
|
|
noinst_HEADERS = bogus_pygobject.h
|
|
|
|
# Setuptools isn't really compatible with distutils, unfortunately
|
|
-@BUILD_PYTHON_TRUE@SETUPTOOLS_CRAP = `python -c 'import setuptools' 2>/dev/null \
|
|
+@BUILD_PYTHON_TRUE@SETUPTOOLS_CRAP = `python3 -c 'import setuptools' 2>/dev/null \
|
|
@BUILD_PYTHON_TRUE@ && echo --single-version-externally-managed --record filelist.txt`
|
|
|
|
all: all-am
|
|
@@ -505,7 +505,7 @@ uninstall-am: uninstall-local uninstall-
|
|
@BUILD_PYTHON_TRUE@ touch $@
|
|
|
|
@BUILD_CYTHON_TRUE@$(srcdir)/pocketsphinx.c: $(srcdir)/pocketsphinx.pyx $(srcdir)/pocketsphinx.pxd
|
|
-@BUILD_CYTHON_TRUE@ cython -o $@ $< $(CPPFLAGS) -I$(sphinxbase)/python
|
|
+@BUILD_CYTHON_TRUE@ cython -3 -o $@ $< $(CPPFLAGS) -I$(sphinxbase)/python
|
|
|
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
|
Index: pocketsphinx-0.8/python/pocketsphinx.pyx
|
|
===================================================================
|
|
--- pocketsphinx-0.8.orig/python/pocketsphinx.pyx
|
|
+++ pocketsphinx-0.8/python/pocketsphinx.pyx
|
|
@@ -7,6 +7,8 @@
|
|
#
|
|
# Author: David Huggins-Daines <dhuggins@cs.cmu.edu>
|
|
|
|
+from libc.stdio cimport fdopen
|
|
+
|
|
cdef class LatNode:
|
|
"""
|
|
Node in a word lattice.
|
|
@@ -265,7 +267,7 @@ cdef class Lattice:
|
|
self.dag = ps_lattice_read(NULL, latfile)
|
|
self.n_frames = ps_lattice_n_frames(self.dag)
|
|
if self.dag == NULL:
|
|
- raise RuntimeError, "Failed to read lattice from %s" % latfile
|
|
+ raise RuntimeError("Failed to read lattice from %s" % latfile)
|
|
|
|
cdef set_dag(Lattice self, ps_lattice_t *dag):
|
|
ps_lattice_retain(dag)
|
|
@@ -366,7 +368,7 @@ cdef class Lattice:
|
|
|
|
rv = ps_lattice_write(self.dag, outfile)
|
|
if rv < 0:
|
|
- raise RuntimeError, "Failed to write lattice to %s" % outfile
|
|
+ raise RuntimeError("Failed to write lattice to %s" % outfile)
|
|
|
|
|
|
cdef class Segment:
|
|
@@ -469,11 +471,11 @@ cdef class Decoder:
|
|
i = i + 2
|
|
config = sb.cmd_ln_parse_r(NULL, ps_args(), self.argc, self.argv, 0)
|
|
if config == NULL:
|
|
- raise RuntimeError, "Failed to parse argument list"
|
|
+ raise RuntimeError("Failed to parse argument list")
|
|
self.ps = ps_init(config)
|
|
sb.cmd_ln_free_r(config)
|
|
if self.ps == NULL:
|
|
- raise RuntimeError, "Failed to initialize PocketSphinx"
|
|
+ raise RuntimeError("Failed to initialize PocketSphinx")
|
|
|
|
cdef set_boxed(Decoder self, box):
|
|
cdef ps_decoder_t *ps
|
|
@@ -506,7 +508,7 @@ cdef class Decoder:
|
|
cdef int nsamp
|
|
cdef char *cuttid
|
|
|
|
- cfh = PyFile_AsFile(fh)
|
|
+ cfh = fdopen(PyObject_AsFileDescriptor(fh), "rb")
|
|
if uttid == None:
|
|
cuttid = NULL
|
|
else:
|
|
@@ -525,7 +527,7 @@ cdef class Decoder:
|
|
cdef FILE *cfh
|
|
cdef char *cuttid
|
|
|
|
- cfh = PyFile_AsFile(fh)
|
|
+ cfh = fdopen(PyObject_AsFileDescriptor(fh), "rb")
|
|
if uttid == None:
|
|
cuttid = NULL
|
|
else:
|
|
@@ -555,7 +557,7 @@ cdef class Decoder:
|
|
@param data: Audio data to process. This is packed binary
|
|
data, which consists of single-channel, 16-bit PCM audio, at
|
|
the sample rate specified when the decoder was initialized.
|
|
- @type data: str
|
|
+ @type data: bytes
|
|
@param no_search: Buffer the data without actually processing it (default is to process the
|
|
data as it is received).
|
|
@type no_search: bool
|
|
@@ -569,17 +571,17 @@ cdef class Decoder:
|
|
cdef char* strdata
|
|
cdef raw_data_ptr cdata
|
|
|
|
- PyString_AsStringAndSize(data, &strdata, &len)
|
|
+ PyBytes_AsStringAndSize(data, &strdata, &len)
|
|
cdata = strdata
|
|
- if ps_process_raw(self.ps, cdata, len / 2, no_search, full_utt) < 0:
|
|
- raise RuntimeError, "Failed to process %d samples of audio data" % len / 2
|
|
+ if ps_process_raw(self.ps, cdata, len // 2, no_search, full_utt) < 0:
|
|
+ raise RuntimeError("Failed to process %d samples of audio data" % len // 2)
|
|
|
|
def end_utt(self):
|
|
"""
|
|
Finish processing an utterance.
|
|
"""
|
|
if ps_end_utt(self.ps) < 0:
|
|
- raise RuntimeError, "Failed to stop utterance processing"
|
|
+ raise RuntimeError("Failed to stop utterance processing")
|
|
|
|
def get_hyp(self):
|
|
"""
|
|
@@ -633,7 +635,7 @@ cdef class Decoder:
|
|
|
|
dag = ps_get_lattice(self.ps)
|
|
if dag == NULL:
|
|
- raise RuntimeError, "Failed to create word lattice"
|
|
+ raise RuntimeError("Failed to create word lattice")
|
|
lat = Lattice()
|
|
lat.set_dag(dag)
|
|
return lat
|
|
@@ -726,7 +728,7 @@ cdef class Decoder:
|
|
cdef SegmentIterator itor
|
|
first_seg = ps_seg_iter(self.ps, &score)
|
|
if first_seg == NULL:
|
|
- raise RuntimeError, "Failed to create best path word segment iterator"
|
|
+ raise RuntimeError("Failed to create best path word segment iterator")
|
|
itor = SegmentIterator()
|
|
itor.set_iter(first_seg)
|
|
return (itor, score)
|
|
Index: pocketsphinx-0.8/python/setup.py.in
|
|
===================================================================
|
|
--- pocketsphinx-0.8.orig/python/setup.py.in
|
|
+++ pocketsphinx-0.8/python/setup.py.in
|
|
@@ -5,7 +5,7 @@ except:
|
|
|
|
import distutils.command.install
|
|
import os
|
|
-import commands
|
|
+import subprocess
|
|
import sys
|
|
|
|
class bogus_uninstall(distutils.command.install.install):
|
|
@@ -29,7 +29,7 @@ class bogus_uninstall(distutils.command.
|
|
if os.path.isdir(f):
|
|
dirs[f] = 1
|
|
continue
|
|
- print "Trying to remove file", f
|
|
+ print("Trying to remove file", f)
|
|
try:
|
|
os.unlink(f)
|
|
except:
|
|
@@ -38,11 +38,11 @@ class bogus_uninstall(distutils.command.
|
|
# This is really not guaranteed to work!!!
|
|
for d in dirs:
|
|
while d != self.prefix:
|
|
- print "Trying to remove dir", d
|
|
+ print("Trying to remove dir", d)
|
|
try:
|
|
if d.endswith(".egg-info"):
|
|
files=[os.path.join(d,f) for f in os.listdir(d)]
|
|
- print "Trying to remove:", " ".join(files)
|
|
+ print("Trying to remove:", " ".join(files))
|
|
for f in files: os.unlink(f)
|
|
os.rmdir(d)
|
|
except:
|
|
@@ -51,7 +51,7 @@ class bogus_uninstall(distutils.command.
|
|
|
|
def pkgconfig(*packages, **kw):
|
|
flag_map = {'-I': 'include_dirs', '-L': 'library_dirs', '-l': 'libraries'}
|
|
- for token in commands.getoutput("pkg-config --libs --cflags %s" % ' '.join(packages)).split():
|
|
+ for token in subprocess.getoutput("pkg-config --libs --cflags %s" % ' '.join(packages)).split():
|
|
kw.setdefault(flag_map.get(token[:2]), []).append(token[2:])
|
|
return kw
|
|
|
|
Index: pocketsphinx-0.8/python/pocketsphinx.pxd
|
|
===================================================================
|
|
--- pocketsphinx-0.8.orig/python/pocketsphinx.pxd
|
|
+++ pocketsphinx-0.8/python/pocketsphinx.pxd
|
|
@@ -28,8 +28,8 @@ cdef extern from "stdio.h":
|
|
ctypedef struct FILE # oh dear...
|
|
|
|
cdef extern from "Python.h":
|
|
- FILE *PyFile_AsFile(object p)
|
|
- int PyString_AsStringAndSize(object p, char **buf, Py_ssize_t *len) except -1
|
|
+ int PyObject_AsFileDescriptor(object)
|
|
+ int PyBytes_AsStringAndSize(object p, char **buf, Py_ssize_t *len) except -1
|
|
|
|
# Don't rely on having PyGTK actually installed
|
|
cdef extern from "bogus_pygobject.h":
|