modelscope-funasr这是什么原因?

modelscope-funasr这是什么原因?(base) ubuntu@ubun:~/WFJ/FunASR/python$ python3 funasr_wss_client.py --host "127.0.0.1" --port 10095 --mode offline --audio_in "../audio/asr_example.wav"
Namespace(host='127.0.0.1', port=10095, chunk_size=[5, 10, 5], chunk_interval=10, hotword='', audio_in='../audio/asr_example.wav', audio_fs=16000, send_without_sleep=True, thread_num=1, words_max_print=10000, output_dir=None, ssl=1, use_itn=1, mode='offline')
/home/ubuntu/WFJ/FunASR/python/funasr_wss_client.py:318: DeprecationWarning: ssl.SSLContext() without protocol argument is deprecated.
ssl_context = ssl.SSLContext()
/home/ubuntu/WFJ/FunASR/python/funasr_wss_client.py:318: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated
ssl_context = ssl.SSLContext()
connect to wss://127.0.0.1:10095
Process Process-1:
Traceback (most recent call last):
File "/home/ubuntu/.pyenv/versions/3.10.12/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
self.run()
File "/home/ubuntu/.pyenv/versions/3.10.12/lib/python3.10/multiprocessing/process.py", line 108, in run
self._target(self._args, *self._kwargs)
File "/home/ubuntu/WFJ/FunASR/python/funasr_wss_client.py", line 337, in one_thread
asyncio.get_event_loop().run_until_complete(ws_client(id, chunk_begin, chunk_size))
File "/home/ubuntu/.pyenv/versions/3.10.12/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
return future.result()
File "/home/ubuntu/WFJ/FunASR/python/funasr_wss_client.py", line 326, in ws_client
async with websockets.connect(uri, subprotocols=["binary"], ping_interval=None, ssl=ssl_context) as websocket:
File "/home/ubuntu/.pyenv/versions/3.10.12/lib/python3.10/site-packages/websockets/legacy/client.py", line 629, in aenter
return await self
File "/home/ubuntu/.pyenv/versions/3.10.12/lib/python3.10/site-packages/websockets/legacy/client.py", line 647, in await_impl_timeout
return await self.await_impl()
File "/home/ubuntu/.pyenv/versions/3.10.12/lib/python3.10/site-packages/websockets/legacy/client.py", line 651, in await_impl
_transport, _protocol = await self._create_connection()
File "/home/ubuntu/.pyenv/versions/3.10.12/lib/python3.10/asyncio/base_events.py", line 1103, in create_connection
transport, protocol = await self._create_connection_transport(
File "/home/ubuntu/.pyenv/versions/3.10.12/lib/python3.10/asyncio/base_events.py", line 1133, in _create_connection_transport
await waiter
ConnectionResetError
end

展开
收起
三分钟热度的鱼 2024-03-13 21:06:43 344 分享 版权
阿里云 AI 助理回答

根据您提供的错误信息和知识库中的相关资料,以下是问题的详细分析和解决方案:


问题分析

  1. 错误描述
    您在运行 funasr_wss_client.py 脚本时遇到了以下问题:

    • DeprecationWarning: 提示 ssl.SSLContext()ssl.PROTOCOL_TLS 已被弃用。
    • ConnectionResetError: 在尝试连接到 WebSocket 服务器时发生连接重置错误。
  2. 可能原因
    根据错误日志和知识库内容,可以推测以下几点:

    • SSL 配置问题:脚本中使用了过时的 SSL 配置方式(ssl.SSLContext()),这可能导致与 WebSocket 服务器的连接失败。
    • WebSocket 服务未启动或配置错误:目标地址 wss://127.0.0.1:10095 可能没有正确启动 WebSocket 服务,或者服务端未启用 SSL 支持。
    • 依赖版本不兼容websockets 或其他依赖库的版本可能与当前代码不兼容。

解决方案

步骤 1:更新 SSL 配置

由于 ssl.SSLContext()ssl.PROTOCOL_TLS 已被弃用,建议更新代码以使用最新的 SSL 配置方式。修改 funasr_wss_client.py 中的相关代码如下:

import ssl

# 使用推荐的 SSL 配置
ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
ssl_context.load_default_certs()

如果目标 WebSocket 服务不需要 SSL 加密,可以直接禁用 SSL:

ssl_context = None

步骤 2:检查 WebSocket 服务状态

确保目标地址 wss://127.0.0.1:10095 的 WebSocket 服务已正确启动,并支持 SSL 连接。可以通过以下步骤验证:

  1. 确认服务是否运行
    在终端中运行以下命令,检查是否有进程监听 10095 端口:

    netstat -tuln | grep 10095
    

    如果没有输出,说明服务未启动。

  2. 手动测试 WebSocket 连接
    使用 websocat 工具测试 WebSocket 连接:

    websocat wss://127.0.0.1:10095
    

    如果连接失败,请检查服务端日志以定位问题。

  3. 检查服务端 SSL 配置
    如果服务端启用了 SSL,请确保其证书配置正确,并且客户端信任该证书。


步骤 3:更新依赖库

确保所有依赖库为最新版本,特别是 websocketsasyncio。运行以下命令更新依赖:

pip install --upgrade websockets asyncio

步骤 4:调试脚本

如果上述步骤仍无法解决问题,可以通过以下方式进一步调试:

  1. 增加日志输出
    funasr_wss_client.py 中添加更多日志,记录连接过程中的详细信息。例如:

    import logging
    logging.basicConfig(level=logging.DEBUG)
    
  2. 捕获异常并打印详细信息
    修改代码以捕获异常并打印堆栈信息:

    try:
       async with websockets.connect(uri, subprotocols=["binary"], ping_interval=None, ssl=ssl_context) as websocket:
           # 处理 WebSocket 通信
           pass
    except Exception as e:
       import traceback
       traceback.print_exc()
    

重要提醒

  • SSL 配置:如果服务端未启用 SSL,请确保客户端禁用 SSL(ssl_context = None)。
  • 依赖版本:请确保 Python 版本为 3.7 或更高,并安装所有必要的依赖包。
  • 服务端日志:如果问题仍未解决,请检查服务端日志以获取更多信息。

通过以上步骤,您应该能够解决 funasr_wss_client.py 脚本运行时的错误。如果仍有问题,请提供更多上下文信息(如服务端配置或完整日志),以便进一步分析。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

包含命名实体识别、文本分类、分词、关系抽取、问答、推理、文本摘要、情感分析、机器翻译等多个领域

热门讨论

热门文章

还有其他疑问?
咨询AI助理