Я пытаюсь запустить двух помощников одновременно. С одной стороны, я могу запустить Алекса без проблем. С другой стороны, я могу без проблем запустить Google Assistant.
Однако, когда я пытаюсь запустить оба одновременно, это выдает мне ошибки, потому что у одного есть эксклюзивный доступ к моему микрофону.
После прочтения я узнал о плагине dsn oop. Это должно позволить мне делить микрофон между приложениями. Поэтому я попытался изменить файл .asoundr c, чтобы использовать dsn oop.
. Я проверил это с помощью arecord в двух терминалах, и я могу записывать одновременно без каких-либо проблем. Но как только я хочу запустить Google Assistant, я получаю сообщение об ошибке:
(Google) pi@Thomas:~ $ googlesamples-assistant-pushtotalk
INFO:root:Connecting to embeddedassistant.googleapis.com
Expression 'paInvalidSampleRate' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2048
Expression 'PaAlsaStreamComponent_InitialConfigure( &self->capture, inParams, self->primeBuffers, hwParamsCapture, &realSr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2719
Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2843
Traceback (most recent call last):
File "/home/pi/Assistants-Pi/Google/bin/googlesamples-assistant-pushtotalk", line 8, in <module>
sys.exit(main())
File "/home/pi/Assistants-Pi/Google/lib/python3.7/site-packages/click/core.py", line 722, in __call__
return self.main(*args, **kwargs)
File "/home/pi/Assistants-Pi/Google/lib/python3.7/site-packages/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/home/pi/Assistants-Pi/Google/lib/python3.7/site-packages/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/pi/Assistants-Pi/Google/lib/python3.7/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/home/pi/Assistants-Pi/Google/lib/python3.7/site-packages/googlesamples/assistant/grpc/pushtotalk.py", line 351, in main
flush_size=audio_flush_size
File "/home/pi/Assistants-Pi/Google/lib/python3.7/site-packages/googlesamples/assistant/grpc/audio_helpers.py", line 190, in __init__
blocksize=int(block_size/2), # blocksize is in number of frames.
File "/home/pi/Assistants-Pi/Google/lib/python3.7/site-packages/sounddevice.py", line 1345, in __init__
**_remove_self(locals()))
File "/home/pi/Assistants-Pi/Google/lib/python3.7/site-packages/sounddevice.py", line 861, in __init__
'Error opening {0}'.format(self.__class__.__name__))
File "/home/pi/Assistants-Pi/Google/lib/python3.7/site-packages/sounddevice.py", line 2653, in _check
raise PortAudioError(errormsg, err)
sounddevice.PortAudioError: Error opening RawStream: Invalid sample rate [PaErrorCode -9997]
Я попытался ввести все разные частоты дискретизации в моем .asoundr c, но, похоже, ни одна из них не работает. Кто-нибудь еще имеет эту проблему или знает, как ее решить?
Вот так теперь выглядит мой файл .asoundr c (который работает для arecord бок о бок в двух терминалах):
pcm.!default {
type asym
playback.pcm {
type plug
slave.pcm "output"
}
capture.pcm {
type plug
slave.pcm "input"
}
}
pcm.output {
type hw
card 0
rate 16000
}
ctl.!default {
type hw
card 0
}
pcm.input {
type dsnoop
card 1
}