При использовании PyAudio (Portaudio связывание) с поддержкой ASIO + DirectSound, этот код:PyAudio 'utf8' Ошибка при включении устройства
import pyaudio
p = pyaudio.PyAudio()
for i in range(p.get_device_count()):
print p.get_device_info_by_index(i)
... производит эту ошибку:
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe9 in position 1: invalid continuation byte
Как мы можем решить эту проблему?
Проблема может исходить от "pyaudio.py", строка 990, из-за безуспешным utf8 декодирования:
return {'index' : index,
'structVersion' : device_info.structVersion,
'name' : device_info.name,
Этот ответ здесь Special characters in audio devices name : Pyaudio ("не использовать PyAudio ") не является удовлетворительным.
Traceback
...
{'defaultSampleRate': 44100.0, 'defaultLowOutputLatency': 0.0, 'defaultLowInputLatency': 0.12, 'maxInputChannels': 2L, 'structVersion': 2L, 'hostApi': 1L, 'index': 8, 'defaultHighOutputLatency': 0.0, 'maxOutputChannels': 0L, 'name': u'Microphone interne (Conexant 20672 SmartAudio HD)', 'defaultHighInputLatency': 0.24}
Traceback (most recent call last):
File "D:\test\test.py", line 5, in <module>
print p.get_device_info_by_index(i)
File "C:\ProgramData\Anaconda\lib\site-packages\pyaudio.py", line 977, in get_device_info_by_index
pa.get_device_info(device_index)
File "C:\ProgramData\Anaconda\lib\site-packages\pyaudio.py", line 990, in _make_device_info_dictionary
'name' : device_info.name,
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe9 in position 1: invalid continuation byte
Показать всю информацию о трассировке ... – geoffspear
Я добавил Traceback @Wooble – Basj
След не соответствует вашему коду, но ошибка выглядит внутренней для pyaudio. Вы пробовали подать с ними отчет об ошибке? – geoffspear