Ошибка при попытке создать новый модуль и подписаться с помощью сервиса ALAudioDevice.

Я пытался запустить скрипт python, чтобы получить звук Нао в виде потока.

Нашел пример прямо на сайте альдебарана.

http://doc.aldebaran.com/2-8/dev/python/examples/audio/audio_soundprocessing.html#process-microphone-signals

Я пытаюсь запустить его как есть только с правильным IP-адресом моего робота. Как только он попадает в функцию startProcessing, он не может найти новую службу, созданную в ALAudioDevice, и выдает следующую ошибку.

self.audio_service.setClientPreferences(self.module_name, 16000, 3, 0)
RUNTIMEERROR:   ALPROXY::ALPROXY
        CANT FIND SERVICE: SoundProcessingModule
[W] 1609782681.228570 42712 QITYPE.SIGNAL: DISCONNECT: NO SUBSCRIPTION FOUND FOR SIGNALLINK 14. 

Любая идея о том, что должно измениться, чтобы иметь возможность запускать этот пример?


person LGG    schedule 11.01.2021    source источник


Ответы (1)


Как видно из предоставленной вами ссылки, перед настройкой параметров аудиоклиента вы должны зарегистрировать свой сервис (или модуль) в NAOqi:

app.session.registerService("SoundProcessingModule", MySoundProcessingModule)

Важно, чтобы ваша служба была зарегистрирована до обращения к ней в других API, таких как setClientPreferences.

person Victor Paléologue    schedule 25.01.2021
comment
Привет, Виктор, я новичок в этом, но разве это не то, что происходит? Запуск SoundProcessingModule и регистрация его в следующей строке (предпоследней), перед выполнением startProcessing? Тем не менее, он все еще говорит, что не может найти службу. Должен ли я зарегистрироваться каким-то другим способом? File "SoundProcessingModule.py", line 113, in <module> MySoundProcessingModule.startProcessing() File "SoundProcessingModule.py", line 42, in startProcessing self.audio_service.setClientPreferences(self.module_name, 16000, 3, 0) RuntimeError: ALProxy::ALProxy Can't find service: SoundProcessingModule - person LGG; 27.01.2021
comment
В примере app.session.registerService("SoundProcessingModule", MySoundProcessingModule) находится прямо перед MySoundProcessingModule.startProcessing(). Теоретически это должно работать, поэтому я должен предположить, что что-то не так в вашем коде. Пожалуйста, поделитесь им и/или полной трассировкой, чтобы глубже изучить проблему. - person Victor Paléologue; 28.01.2021
comment
Мой текущий код в точности соответствует примеру кода, но с IP-адресом моего робота, поскольку я запускаю его со своего компьютера, а не с самого робота. Я просто хотел сначала протестировать пример, прежде чем вносить какие-либо изменения. Я не знаю, почему это не работает, дайте мне знать, если я могу опубликовать что-то, что могло бы дать лучшее объяснение этому. - person LGG; 02.02.2021
comment
Возможно, если бы вы могли поделиться логами вашей программы в pastebin, а возможно, и NAOqi, я мог бы помочь дальше. - person Victor Paléologue; 02.02.2021