Originally created by @pangzheng on GitHub (Mar 5, 2025).
安装方法 docker install
环境信息 Open WebUI版本:v0.5.18 Ollama(如适用):0.5.12 操作系统:Windows 10、 浏览器(如适用): 133.0.6943.142
确认信息:
我已阅读并遵循README.md中的所有说明。 我使用了Open WebUI和Ollama的最新版本。 我包含了浏览器控制台日志。 我包含了Docker容器日志。 我在"重现步骤"部分提供了确切的复现Bug步骤。
预期行为 点击语音沟通按钮可以进行正常的语音对话交流
实际行为 报错
描述 Bug总结: 我设置了系统的 TTS ,将 TTS 的请求使用 edge-tts 来解决,具体
重现细节 重现步骤: 1-设置系统语音 TTS 为 EDGE-TTS 2-打开聊天 3-点击🎧按钮 4-说话与代理沟通
日志和截图 浏览器控制台日志:
2025-03-05 13:23:34 Traceback (most recent call last): 2025-03-05 13:23:34 2025-03-05 13:23:34 File "/usr/local/lib/python3.11/threading.py", line 1002, in _bootstrap 2025-03-05 13:23:34 self._bootstrap_inner() 2025-03-05 13:23:34 │ └ <function Thread._bootstrap_inner at 0x7f82f3a00860> 2025-03-05 13:23:34 └ <WorkerThread(AnyIO worker thread, started 140196028860096)> 2025-03-05 13:23:34 File "/usr/local/lib/python3.11/threading.py", line 1045, in _bootstrap_inner 2025-03-05 13:23:34 self.run() 2025-03-05 13:23:34 │ └ <function WorkerThread.run at 0x7f81f9fd5080> 2025-03-05 13:23:34 └ <WorkerThread(AnyIO worker thread, started 140196028860096)> 2025-03-05 13:23:34 File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 962, in run 2025-03-05 13:23:34 result = context.run(func, *args) 2025-03-05 13:23:34 │ │ │ └ () 2025-03-05 13:23:34 │ │ └ functools.partial(<function transcription at 0x7f82051c8cc0>, user=UserModel(id='a8417e08-3458-478e-8798-c5f0e4a7056c', name=... 2025-03-05 13:23:34 │ └ <method 'run' of '_contextvars.Context' objects> 2025-03-05 13:23:34 └ <_contextvars.Context object at 0x7f81f9370cc0> 2025-03-05 13:23:34 2025-03-05 13:23:34 > File "/app/backend/open_webui/routers/audio.py", line 659, in transcription 2025-03-05 13:23:34 data = transcribe(request, file_path) 2025-03-05 13:23:34 │ │ └ '/app/backend/data/cache/audio/transcriptions/95218592-c037-43b2-8921-dafcc8bd8ff7.wav' 2025-03-05 13:23:34 │ └ <starlette.requests.Request object at 0x7f81f8f812d0> 2025-03-05 13:23:34 └ <function transcribe at 0x7f82051b3ce0> 2025-03-05 13:23:34 2025-03-05 13:23:34 File "/app/backend/open_webui/routers/audio.py", line 482, in transcribe 2025-03-05 13:23:34 segments, info = model.transcribe(file_path, beam_size=5) 2025-03-05 13:23:34 │ └ '/app/backend/data/cache/audio/transcriptions/95218592-c037-43b2-8921-dafcc8bd8ff7.wav' 2025-03-05 13:23:34 └ None 2025-03-05 13:23:34 2025-03-05 13:23:34 AttributeError: 'NoneType' object has no attribute 'transcribe' 2025-03-05 13:23:34 2025-03-05 05:23:34.596 | ERROR | open_webui.routers.audio:transcription:671 - 400: [ERROR: 'NoneType' object has no attribute 'transcribe'] - {} 2025-03-05 13:23:34 Traceback (most recent call last): 2025-03-05 13:23:34 2025-03-05 13:23:34 File "/app/backend/open_webui/routers/audio.py", line 659, in transcription 2025-03-05 13:23:34 data = transcribe(request, file_path) 2025-03-05 13:23:34 │ │ └ '/app/backend/data/cache/audio/transcriptions/95218592-c037-43b2-8921-dafcc8bd8ff7.wav' 2025-03-05 13:23:34 │ └ <starlette.requests.Request object at 0x7f81f8f812d0> 2025-03-05 13:23:34 └ <function transcribe at 0x7f82051b3ce0> 2025-03-05 13:23:34 2025-03-05 13:23:34 File "/app/backend/open_webui/routers/audio.py", line 482, in transcribe 2025-03-05 13:23:34 segments, info = model.transcribe(file_path, beam_size=5) 2025-03-05 13:23:34 │ └ '/app/backend/data/cache/audio/transcriptions/95218592-c037-43b2-8921-dafcc8bd8ff7.wav' 2025-03-05 13:23:34 └ None 2025-03-05 13:23:34 2025-03-05 13:23:34 AttributeError: 'NoneType' object has no attribute 'transcribe' 2025-03-05 13:23:34 2025-03-05 13:23:34 2025-03-05 13:23:34 During handling of the above exception, another exception occurred: 2025-03-05 13:23:34 2025-03-05 13:23:34 2025-03-05 13:23:34 Traceback (most recent call last): 2025-03-05 13:23:34 2025-03-05 13:23:34 File "/usr/local/lib/python3.11/threading.py", line 1002, in _bootstrap 2025-03-05 13:23:34 self._bootstrap_inner() 2025-03-05 13:23:34 │ └ <function Thread._bootstrap_inner at 0x7f82f3a00860> 2025-03-05 13:23:34 └ <WorkerThread(AnyIO worker thread, started 140196028860096)> 2025-03-05 13:23:34 File "/usr/local/lib/python3.11/threading.py", line 1045, in _bootstrap_inner 2025-03-05 13:23:34 self.run() 2025-03-05 13:23:34 │ └ <function WorkerThread.run at 0x7f81f9fd5080> 2025-03-05 13:23:34 └ <WorkerThread(AnyIO worker thread, started 140196028860096)> 2025-03-05 13:23:34 File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 962, in run 2025-03-05 13:23:34 result = context.run(func, *args) 2025-03-05 13:23:34 │ │ │ └ () 2025-03-05 13:23:34 │ │ └ functools.partial(<function transcription at 0x7f82051c8cc0>, user=UserModel(id='a8417e08-3458-478e-8798-c5f0e4a7056c', name=... 2025-03-05 13:23:34 │ └ <method 'run' of '_contextvars.Context' objects> 2025-03-05 13:23:34 └ <_contextvars.Context object at 0x7f81f9370cc0> 2025-03-05 13:23:34 2025-03-05 13:23:34 > File "/app/backend/open_webui/routers/audio.py", line 665, in transcription 2025-03-05 13:23:34 raise HTTPException( 2025-03-05 13:23:34 └ <class 'fastapi.exceptions.HTTPException'> 2025-03-05 13:23:34 2025-03-05 13:23:34 fastapi.exceptions.HTTPException: 400: [ERROR: 'NoneType' object has no attribute 'transcribe'] 2025-03-05 13:23:34 2025-03-05 05:23:34.599 | INFO | uvicorn.protocols.http.httptools_impl:send:468 - 172.17.0.1:52562 - "POST /api/v1/audio/transcriptions HTTP/1.1" 400 - {} 2025-03-05 13:23:38 2025-03-05 05:23:38.585 | WARNING | python_multipart.multipart:_internal_write:1401 - Skipping data after last boundary - {} 2025-03-05 13:23:38 2025-03-05 05:23:38.588 | INFO | open_webui.routers.audio:transcription:626 - file.content_type: audio/wav - {} 2025-03-05 13:23:38 2025-03-05 05:23:38.589 | INFO | open_webui.routers.audio:transcribe:470 - transcribe: /app/backend/data/cache/audio/transcriptions/a9b6f943-01d6-4856-aa97-bb9c2fc326d8.wav - {} 2025-03-05 13:23:38 2025-03-05 05:23:38.589 | ERROR | open_webui.routers.audio:transcription:663 - 'NoneType' object has no attribute 'transcribe' - {} 2025-03-05 13:23:38 Traceback (most recent call last): 2025-03-05 13:23:38 2025-03-05 13:23:38 File "/usr/local/lib/python3.11/threading.py", line 1002, in _bootstrap 2025-03-05 13:23:38 self._bootstrap_inner() 2025-03-05 13:23:38 │ └ <function Thread._bootstrap_inner at 0x7f82f3a00860> 2025-03-05 13:23:38 └ <WorkerThread(AnyIO worker thread, started 140196028860096)> 2025-03-05 13:23:38 File "/usr/local/lib/python3.11/threading.py", line 1045, in _bootstrap_inner 2025-03-05 13:23:38 self.run() 2025-03-05 13:23:38 │ └ <function WorkerThread.run at 0x7f81f9fd5080> 2025-03-05 13:23:38 └ <WorkerThread(AnyIO worker thread, started 140196028860096)> 2025-03-05 13:23:38 File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 962, in run 2025-03-05 13:23:38 result = context.run(func, *args) 2025-03-05 13:23:38 │ │ │ └ () 2025-03-05 13:23:38 │ │ └ functools.partial(<function transcription at 0x7f82051c8cc0>, user=UserModel(id='a8417e08-3458-478e-8798-c5f0e4a7056c', name=... 2025-03-05 13:23:38 │ └ <method 'run' of '_contextvars.Context' objects> 2025-03-05 13:23:38 └ <_contextvars.Context object at 0x7f81f9ff0b80> 2025-03-05 13:23:38 2025-03-05 13:23:38 > File "/app/backend/open_webui/routers/audio.py", line 659, in transcription 2025-03-05 13:23:38 data = transcribe(request, file_path) 2025-03-05 13:23:38 │ │ └ '/app/backend/data/cache/audio/transcriptions/a9b6f943-01d6-4856-aa97-bb9c2fc326d8.wav' 2025-03-05 13:23:38 │ └ <starlette.requests.Request object at 0x7f81f93f26d0> 2025-03-05 13:23:38 └ <function transcribe at 0x7f82051b3ce0> 2025-03-05 13:23:38 2025-03-05 13:23:38 File "/app/backend/open_webui/routers/audio.py", line 482, in transcribe 2025-03-05 13:23:38 segments, info = model.transcribe(file_path, beam_size=5) 2025-03-05 13:23:38 │ └ '/app/backend/data/cache/audio/transcriptions/a9b6f943-01d6-4856-aa97-bb9c2fc326d8.wav' 2025-03-05 13:23:38 └ None 2025-03-05 13:23:38 2025-03-05 13:23:38 AttributeError: 'NoneType' object has no attribute 'transcribe' 2025-03-05 13:23:38 2025-03-05 05:23:38.591 | ERROR | open_webui.routers.audio:transcription:671 - 400: [ERROR: 'NoneType' object has no attribute 'transcribe'] - {} 2025-03-05 13:23:38 Traceback (most recent call last): 2025-03-05 13:23:38 2025-03-05 13:23:38 File "/app/backend/open_webui/routers/audio.py", line 659, in transcription 2025-03-05 13:23:38 data = transcribe(request, file_path) 2025-03-05 13:23:38 │ │ └ '/app/backend/data/cache/audio/transcriptions/a9b6f943-01d6-4856-aa97-bb9c2fc326d8.wav' 2025-03-05 13:23:38 │ └ <starlette.requests.Request object at 0x7f81f93f26d0> 2025-03-05 13:23:38 └ <function transcribe at 0x7f82051b3ce0> 2025-03-05 13:23:38 2025-03-05 13:23:38 File "/app/backend/open_webui/routers/audio.py", line 482, in transcribe 2025-03-05 13:23:38 segments, info = model.transcribe(file_path, beam_size=5) 2025-03-05 13:23:38 │ └ '/app/backend/data/cache/audio/transcriptions/a9b6f943-01d6-4856-aa97-bb9c2fc326d8.wav' 2025-03-05 13:23:38 └ None 2025-03-05 13:23:38 2025-03-05 13:23:38 AttributeError: 'NoneType' object has no attribute 'transcribe' 2025-03-05 13:23:38 2025-03-05 13:23:38 2025-03-05 13:23:38 During handling of the above exception, another exception occurred: 2025-03-05 13:23:38 2025-03-05 13:23:38 2025-03-05 13:23:38 Traceback (most recent call last): 2025-03-05 13:23:38 2025-03-05 13:23:38 File "/usr/local/lib/python3.11/threading.py", line 1002, in _bootstrap 2025-03-05 13:23:38 self._bootstrap_inner() 2025-03-05 13:23:38 │ └ <function Thread._bootstrap_inner at 0x7f82f3a00860> 2025-03-05 13:23:38 └ <WorkerThread(AnyIO worker thread, started 140196028860096)> 2025-03-05 13:23:38 File "/usr/local/lib/python3.11/threading.py", line 1045, in _bootstrap_inner 2025-03-05 13:23:38 self.run() 2025-03-05 13:23:38 │ └ <function WorkerThread.run at 0x7f81f9fd5080> 2025-03-05 13:23:38 └ <WorkerThread(AnyIO worker thread, started 140196028860096)> 2025-03-05 13:23:38 File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 962, in run 2025-03-05 13:23:38 result = context.run(func, *args) 2025-03-05 13:23:38 │ │ │ └ () 2025-03-05 13:23:38 │ │ └ functools.partial(<function transcription at 0x7f82051c8cc0>, user=UserModel(id='a8417e08-3458-478e-8798-c5f0e4a7056c', name=... 2025-03-05 13:23:38 │ └ <method 'run' of '_contextvars.Context' objects> 2025-03-05 13:23:38 └ <_contextvars.Context object at 0x7f81f9ff0b80> 2025-03-05 13:23:38 2025-03-05 13:23:38 > File "/app/backend/open_webui/routers/audio.py", line 665, in transcription 2025-03-05 13:23:38 raise HTTPException( 2025-03-05 13:23:38 └ <class 'fastapi.exceptions.HTTPException'> 2025-03-05 13:23:38 2025-03-05 13:23:38 fastapi.exceptions.HTTPException: 400: [ERROR: 'NoneType' object has no attribute 'transcribe']
Docker容器日志: [如果适用,请包含相关Docker容器日志。]
屏幕截图/屏幕录制(如适用): 浏览器报错
其他信息 [提供任何可能有助于理解并重现问题的额外细节。这可以包括特定配置、错误消息或其他与Bug相关的内容。]
No dependencies set.
The note is not visible to the blocked user.
Originally created by @pangzheng on GitHub (Mar 5, 2025).
Bug Report
安装方法
docker install
环境信息
Open WebUI版本:v0.5.18
Ollama(如适用):0.5.12
操作系统:Windows 10、
浏览器(如适用): 133.0.6943.142
确认信息:
我已阅读并遵循README.md中的所有说明。
我使用了Open WebUI和Ollama的最新版本。
我包含了浏览器控制台日志。
我包含了Docker容器日志。
我在"重现步骤"部分提供了确切的复现Bug步骤。
预期行为
点击语音沟通按钮可以进行正常的语音对话交流
实际行为

报错
描述
Bug总结:
我设置了系统的 TTS ,将 TTS 的请求使用 edge-tts 来解决,具体
重现细节
重现步骤:
1-设置系统语音 TTS 为 EDGE-TTS
2-打开聊天
3-点击🎧按钮
4-说话与代理沟通
日志和截图
浏览器控制台日志:
Docker容器日志:
[如果适用,请包含相关Docker容器日志。]
屏幕截图/屏幕录制(如适用):
浏览器报错
其他信息
[提供任何可能有助于理解并重现问题的额外细节。这可以包括特定配置、错误消息或其他与Bug相关的内容。]