pvkoala 1.0.1__py3-none-any.whl → 2.0.0__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
pvkoala/_koala.py CHANGED
@@ -16,7 +16,27 @@ from typing import Sequence
16
16
 
17
17
 
18
18
  class KoalaError(Exception):
19
- pass
19
+ def __init__(self, message: str = '', message_stack: Sequence[str] = None):
20
+ super().__init__(message)
21
+
22
+ self._message = message
23
+ self._message_stack = list() if message_stack is None else message_stack
24
+
25
+ def __str__(self):
26
+ message = self._message
27
+ if len(self._message_stack) > 0:
28
+ message += ':'
29
+ for i in range(len(self._message_stack)):
30
+ message += '\n [%d] %s' % (i, self._message_stack[i])
31
+ return message
32
+
33
+ @property
34
+ def message(self) -> str:
35
+ return self._message
36
+
37
+ @property
38
+ def message_stack(self) -> Sequence[str]:
39
+ return self._message_stack
20
40
 
21
41
 
22
42
  class KoalaMemoryError(KoalaError):
@@ -123,15 +143,34 @@ class Koala(object):
123
143
 
124
144
  library = cdll.LoadLibrary(library_path)
125
145
 
146
+ set_sdk_func = library.pv_set_sdk
147
+ set_sdk_func.argtypes = [c_char_p]
148
+ set_sdk_func.restype = None
149
+
150
+ set_sdk_func('python'.encode('utf-8'))
151
+
152
+ self._get_error_stack_func = library.pv_get_error_stack
153
+ self._get_error_stack_func.argtypes = [POINTER(POINTER(c_char_p)), POINTER(c_int)]
154
+ self._get_error_stack_func.restype = self.PicovoiceStatuses
155
+
156
+ self._free_error_stack_func = library.pv_free_error_stack
157
+ self._free_error_stack_func.argtypes = [POINTER(c_char_p)]
158
+ self._free_error_stack_func.restype = None
159
+
126
160
  init_func = library.pv_koala_init
127
161
  init_func.argtypes = [c_char_p, c_char_p, POINTER(POINTER(self.CKoala))]
128
162
  init_func.restype = self.PicovoiceStatuses
129
163
 
130
164
  self._handle = POINTER(self.CKoala)()
131
165
 
132
- status = init_func(access_key.encode(), model_path.encode(), byref(self._handle))
166
+ status = init_func(
167
+ access_key.encode(),
168
+ model_path.encode(),
169
+ byref(self._handle))
133
170
  if status is not self.PicovoiceStatuses.SUCCESS:
134
- raise self._PICOVOICE_STATUS_TO_EXCEPTION[status]()
171
+ raise self._PICOVOICE_STATUS_TO_EXCEPTION[status](
172
+ message='Initialization failed',
173
+ message_stack=self._get_error_stack())
135
174
 
136
175
  self._delete_func = library.pv_koala_delete
137
176
  self._delete_func.argtypes = [POINTER(self.CKoala)]
@@ -144,7 +183,10 @@ class Koala(object):
144
183
  status = delay_sample_func(self._handle, delay_sample)
145
184
  if status is not self.PicovoiceStatuses.SUCCESS:
146
185
  self.delete()
147
- raise self._PICOVOICE_STATUS_TO_EXCEPTION[status]()
186
+ raise self._PICOVOICE_STATUS_TO_EXCEPTION[status](
187
+ message='Failed to get delay samples',
188
+ message_stack=self._get_error_stack())
189
+
148
190
  self._delay_sample = delay_sample.value
149
191
 
150
192
  self._process_func = library.pv_koala_process
@@ -193,7 +235,9 @@ class Koala(object):
193
235
 
194
236
  status = self._process_func(self._handle, pcm, enhanced_pcm)
195
237
  if status is not self.PicovoiceStatuses.SUCCESS:
196
- raise self._PICOVOICE_STATUS_TO_EXCEPTION[status]()
238
+ raise self._PICOVOICE_STATUS_TO_EXCEPTION[status](
239
+ message='Processing failed',
240
+ message_stack=self._get_error_stack())
197
241
 
198
242
  # noinspection PyTypeChecker
199
243
  return list(enhanced_pcm)
@@ -206,7 +250,9 @@ class Koala(object):
206
250
 
207
251
  status = self._reset_func(self._handle)
208
252
  if status is not self.PicovoiceStatuses.SUCCESS:
209
- raise self._PICOVOICE_STATUS_TO_EXCEPTION[status]()
253
+ raise self._PICOVOICE_STATUS_TO_EXCEPTION[status](
254
+ message='Reset failed',
255
+ message_stack=self._get_error_stack())
210
256
 
211
257
  def delete(self) -> None:
212
258
  """Releases resources acquired by Koala."""
@@ -239,6 +285,21 @@ class Koala(object):
239
285
 
240
286
  return self._version
241
287
 
288
+ def _get_error_stack(self) -> Sequence[str]:
289
+ message_stack_ref = POINTER(c_char_p)()
290
+ message_stack_depth = c_int()
291
+ status = self._get_error_stack_func(byref(message_stack_ref), byref(message_stack_depth))
292
+ if status is not self.PicovoiceStatuses.SUCCESS:
293
+ raise self._PICOVOICE_STATUS_TO_EXCEPTION[status](message='Unable to get Koala error state')
294
+
295
+ message_stack = list()
296
+ for i in range(message_stack_depth.value):
297
+ message_stack.append(message_stack_ref[i].decode('utf-8'))
298
+
299
+ self._free_error_stack_func(message_stack_ref)
300
+
301
+ return message_stack
302
+
242
303
 
243
304
  __all__ = [
244
305
  'Koala',
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pvkoala
3
- Version: 1.0.1
3
+ Version: 2.0.0
4
4
  Summary: Koala Noise Suppression Engine.
5
5
  Home-page: https://github.com/Picovoice/koala
6
6
  Author: Picovoice
@@ -0,0 +1,19 @@
1
+ pvkoala/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
2
+ pvkoala/__init__.py,sha256=46DQVzd7KMWWHnksLGV0vT6VPuZQe9Ivvdf2VQjLRhY,570
3
+ pvkoala/_factory.py,sha256=iZqM5lgr130Z_BjDgSi3maA-4dGO4J9abwUlNsX84Vo,1458
4
+ pvkoala/_koala.py,sha256=2NwR_XwjcllPA8FHTE4Q-ofp3X78YaCBGuEZNiafPdo,10689
5
+ pvkoala/_util.py,sha256=wU3RwME0llwlBkMCmVRmfKHGsrQJrGZwxbtxkfvjSCo,3135
6
+ pvkoala/lib/common/koala_params.pv,sha256=A_92Jxj36MvGe3oboq70wFubecCELhAkNZvTEJk6vfQ,4007743
7
+ pvkoala/lib/jetson/cortex-a57-aarch64/libpv_koala.so,sha256=R6ylMuZDy3GNJTpI_i4S2qesQk1_3GulWnl3ZhhKuKg,142656
8
+ pvkoala/lib/linux/x86_64/libpv_koala.so,sha256=9sE-zswQZEt6i2S1kFYgc9ypkWTFFTpWN6xkjJ7XMAk,163504
9
+ pvkoala/lib/mac/arm64/libpv_koala.dylib,sha256=5bswF2_yIr4dA6z9Ff8IIyQnVBFwX8eBD3Ioon2_VvU,203502
10
+ pvkoala/lib/mac/x86_64/libpv_koala.dylib,sha256=rg65W2omZecWDu6uFOe-iOyrCsMiGjOwNINBNAAFGAE,218256
11
+ pvkoala/lib/raspberry-pi/cortex-a53/libpv_koala.so,sha256=5IwELivbaznf4mn-uGO9FUJUkx3Kwn_s3avPLa46Vz8,129188
12
+ pvkoala/lib/raspberry-pi/cortex-a53-aarch64/libpv_koala.so,sha256=7PyFuqYL1XcvumWb0VDYzjLSUtrb2RlM0fcXXdrxrKw,142656
13
+ pvkoala/lib/raspberry-pi/cortex-a72/libpv_koala.so,sha256=0HpQr4t6IXiu_o-GS3mV5QczmgvrdYEVZ8zUM0bp-kA,133284
14
+ pvkoala/lib/raspberry-pi/cortex-a72-aarch64/libpv_koala.so,sha256=LjFS24G2TIaJtcpZoELC5-tvaw7QAAdOyM2UZJMHZrY,142656
15
+ pvkoala/lib/windows/amd64/libpv_koala.dll,sha256=h586bu40qiAw2FG06e9Eg1EX4cBZvS2jHodwvaEsNkI,282112
16
+ pvkoala-2.0.0.dist-info/METADATA,sha256=cHRGEixxK3jMCC41V3TIxueiHx729hB8-6Mu9vDC3pU,2785
17
+ pvkoala-2.0.0.dist-info/WHEEL,sha256=g4nMs7d-Xl9-xC9XovUrsDHGXt-FT0E17Yqo92DEfvY,92
18
+ pvkoala-2.0.0.dist-info/top_level.txt,sha256=Gb-hF6eAZIh7Bm1LfLuwsCQ_0y7FWSIuYSQX0p3T6No,8
19
+ pvkoala-2.0.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.37.1)
2
+ Generator: bdist_wheel (0.34.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,19 +0,0 @@
1
- pvkoala/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
2
- pvkoala/__init__.py,sha256=46DQVzd7KMWWHnksLGV0vT6VPuZQe9Ivvdf2VQjLRhY,570
3
- pvkoala/_factory.py,sha256=iZqM5lgr130Z_BjDgSi3maA-4dGO4J9abwUlNsX84Vo,1458
4
- pvkoala/_koala.py,sha256=KWZlVNRFV0nmrNy2KaNOZU6uMZlXVHFxheEVgpVHsBo,8370
5
- pvkoala/_util.py,sha256=wU3RwME0llwlBkMCmVRmfKHGsrQJrGZwxbtxkfvjSCo,3135
6
- pvkoala/lib/common/koala_params.pv,sha256=3lDAuNhemokD-BmhHS1jJzvb3x3F_7u0AA_msQGc61o,4007735
7
- pvkoala/lib/jetson/cortex-a57-aarch64/libpv_koala.so,sha256=O84bKNt2ccsaWcfKmwekTYw7uUG0eUdVu5SNku5l6Kg,133600
8
- pvkoala/lib/linux/x86_64/libpv_koala.so,sha256=ZK--RIMsHSv_AUEC6KiuuLJW4EpVT4klk9d5Yr-YAqg,150352
9
- pvkoala/lib/mac/arm64/libpv_koala.dylib,sha256=xor3S9k-rgk85h03je-mhAo_ZEn4lPnDCl-uK70CFxU,203166
10
- pvkoala/lib/mac/x86_64/libpv_koala.dylib,sha256=tbfpxLQnxT4vLOLu2tkQNa2FoKjmLmlSa4uzwl29mrs,217912
11
- pvkoala/lib/raspberry-pi/cortex-a53/libpv_koala.so,sha256=QTVgoqL49iOSDXycT_nAOc7On-txbXcztlFX4tFwi8Y,120620
12
- pvkoala/lib/raspberry-pi/cortex-a53-aarch64/libpv_koala.so,sha256=WTRuKpSNUsm6so1FaQUwP_boTE2Xs_n-VGQGrSj_W4U,133688
13
- pvkoala/lib/raspberry-pi/cortex-a72/libpv_koala.so,sha256=fQe4_Td1tWfC5GVvqY-5sk0s7sFmYH1G41WaupHyoGI,124716
14
- pvkoala/lib/raspberry-pi/cortex-a72-aarch64/libpv_koala.so,sha256=7Udm5LN-kqD9ICs20AveKw81ZFE6RuD3mmH6UzfZIDA,133688
15
- pvkoala/lib/windows/amd64/libpv_koala.dll,sha256=uWdtDcuYFpUe-0w2OHy8RRfQwrd0IKHpMGXZk2XFGs0,303104
16
- pvkoala-1.0.1.dist-info/METADATA,sha256=WXc6hhx1_yxkiL2AGcaUzd2zLCGrVHWy0gkxF6cGh6E,2785
17
- pvkoala-1.0.1.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
18
- pvkoala-1.0.1.dist-info/top_level.txt,sha256=Gb-hF6eAZIh7Bm1LfLuwsCQ_0y7FWSIuYSQX0p3T6No,8
19
- pvkoala-1.0.1.dist-info/RECORD,,