Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions funasr_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,13 +55,13 @@ def get_log_path():
@contextlib.contextmanager
def suppress_stdout():
"""上下文管理器:临时重定向stdout到devnull,避免FunASR库的非JSON输出干扰IPC通信"""
old_stdout = sys.stdout
devnull = open(os.devnull, "w")
try:
sys.stdout = devnull
yield
finally:
sys.stdout = old_stdout
# 使用 sys.__stdout__ 恢复原始stdout,避免多线程race condition
sys.stdout = sys.__stdout__
devnull.close()


Expand Down
2 changes: 1 addition & 1 deletion src/helpers/funasrManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -1231,7 +1231,7 @@ class FunASRManager {
installed: installStatus.installed,
models_downloaded: modelStatus.models_downloaded,
missing_models: modelStatus.missing_models || [],
initializing: this.initializationPromise !== null
initializing: this.initializationPromise !== null || !this.isInitialized
};
}
} catch (error) {
Expand Down
8 changes: 4 additions & 4 deletions src/hooks/useModelStatus.js
Original file line number Diff line number Diff line change
Expand Up @@ -105,8 +105,8 @@ export const useModelStatus = () => {
progress: 100,
stage: 'ready'
}));
} else if (serverStatus.initializing) {
// 模型已下载,正在加载
} else if (serverStatus.initializing || serverStatus.models_downloaded) {
// 模型已下载,正在加载(包括启动竞争窗口期 initializing 尚未设置的情况)
setModelStatus(prev => ({
...prev,
isLoading: true,
Expand All @@ -118,12 +118,12 @@ export const useModelStatus = () => {
stage: 'loading'
}));
} else {
// 模型已下载但服务器未就绪
// 模型未下载或服务器真实失败
setModelStatus(prev => ({
...prev,
isLoading: false,
isReady: false,
modelsDownloaded: true,
modelsDownloaded: false,
missingModels: [],
error: serverStatus.error || '服务器未就绪',
progress: 0,
Expand Down