[英]Stream audio from videoconference to azure speech translate using python
I am using a Mac and am trying to capture Zoom audio output as input for Azure speech-to-translation model using python and Blackhole.
並將 Azure translation_recognizer object 設置為“多輸出設備”
但是,當我將 AutoConfig 的 device_name 設置為虛擬設備時,我遇到了一個我不理解的運行時錯誤,並且似乎無法在任何地方找到建議。
堆棧跟蹤:
/usr/local/bin/python3.9 /Users/sethhammock/Scripts/translate_speech_continuous.py
SESSION STARTED: SessionEventArgs(session_id=116958757375422f9b8f5c6a31aed3c9)
Traceback (most recent call last):
File "/Users/sethhammock/Scripts/translate_speech_continuous.py", line 48, in <module>
translation_recognizer.start_continuous_recognition()
File "/usr/local/lib/python3.9/site-packages/azure/cognitiveservices/speech/speech.py", line 664, in start_continuous_recognition
return self._impl.start_continuous_recognition_async().get()
File "/usr/local/lib/python3.9/site-packages/azure/cognitiveservices/speech/speech_py_impl.py", line 1978, in get
return _speech_py_impl.VoidFuture_get(self)
RuntimeError: Exception with an error code: 0x15 (SPXERR_MIC_ERROR)
[CALL STACK BEGIN]
3 libMicrosoft.CognitiveServices.Spee 0x00000001093c464e GetModuleObject + 716126
4 libMicrosoft.CognitiveServices.Spee 0x00000001094322fe GetModuleObject + 1165838
5 libMicrosoft.CognitiveServices.Spee 0x0000000109442c41 GetModuleObject + 1233745
6 libMicrosoft.CognitiveServices.Spee 0x000000010943cabc GetModuleObject + 1208780
7 libMicrosoft.CognitiveServices.Spee 0x000000010943c3c2 GetModuleObject + 1206994
8 libMicrosoft.CognitiveServices.Spee 0x0000000109439941 GetModuleObject + 1196113
9 libMicrosoft.CognitiveServices.Spee 0x0000000109546d1a _ZN13FileBlobWrite11WriteToFileEPviPKc + 671994
10 libMicrosoft.CognitiveServices.Spee 0x0000000109543e52 _ZN13FileBlobWrite11WriteToFileEPviPKc + 660018
11 libMicrosoft.CognitiveServices.Spee 0x00000001094b2f5f _ZN13FileBlobWrite11WriteToFileEPviPKc + 66367
12 libMicrosoft.CognitiveServices.Spee 0x00000001094b08c2 _ZN13FileBlobWrite11WriteToFileEPviPKc + 56482
13 libMicrosoft.CognitiveServices.Spee 0x00000001094cefb6 _ZN13FileBlobWrite11WriteToFileEPviPKc + 181142
14 libMicrosoft.CognitiveServices.Spee 0x0000000109329fc6 GetModuleObject + 83670
15 libMicrosoft.CognitiveServices.Spee 0x0000000109329f59 GetModuleObject + 83561
16 libMicrosoft.CognitiveServices.Spee 0x000000010932be2b GetModuleObject + 91451
17 libMicrosoft.CognitiveServices.Spee 0x000000010932a113 GetModuleObject + 84003
18 libMicrosoft.CognitiveServices.Spee 0x000000010932d4f8 GetModuleObject + 97288
19 libsystem_pthread.dylib 0x00007ff8035464e1 _pthread_start + 125
[CALL STACK END]
Process finished with exit code 1
我認為運行時錯誤是由於 16Hz 的采樣率造成的,但使用 Blackhole,使用簡單的 GUI 很容易配置。
我發現 AudioConfig 需要攜帶 ALSA 樣式的 device_name=device_name,但是,我認為它不會在 Mac OS 上運行,因為嘗試在 cmd 行上安裝 alsa-lib 說,“......這個需要Linux”。
ALSA 風格的設備名稱類似於 hw:X,Y 如果我理解正確,其中 X 是設備,Y 是卡號。 ALSA 顯然適用於 Debian,但不適用於 BSD,這是 Mac OS 的基礎,所以我是在浪費時間嘗試這個嗎?
任何人都可以幫助我了解如何設置speechsdk.audio.AudioConfig(device_name="Blackhole 16ch") or speechsdk.audio.AudioConfig(device_name="hw:0,2")
或者我是否缺少有關設備的內容我想要實現的命名約定?
我嘗試使用文件讀取,效果很好。 它只是讀取我的音頻文件並返回翻譯結果。
因此,由於沒有 ALSA 樣式命名約定,命名設備無法正常工作,是否會將音頻 stream 寫入文件,並讓 Azure 在工作中讀取它?
任何想法都非常感謝!
我使用這些工具來檢查https://github.com/jimbobbennett/AudioIds
我編譯代碼以獲取我的 blackhoide 設備名稱
2022-09-26 14:39:03.339591+0800 AudioIds[5533:2695040] {
deviceName = "BlackHole 16ch";
deviceUID = "BlackHole16ch_UID";
}
我和你有同樣的申請。 我使用該設置,它可以與我一起轉錄。
audio_config = speechsdk.audio.AudioConfig(device_name="BlackHole16ch_UID")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.