-
Notifications
You must be signed in to change notification settings - Fork 151
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Won't be able to import sounddevice due to unknown issue with libportaudio64bit.dll
#517
Comments
Thanks for reporting this! Can you please try the DLL from https://github.com/spatialaudio/portaudio-binaries/actions/runs/7588358747?pr=14? That one is built with Visual Studio via Github Actions. |
Waiting for the ower's response. (of that special computer) Works on mine. I'll let you know once received response. |
Update. That user told me at first the new DLL worked, after minutes, he tried the initial (not workable) once (which still don't work), then the new DLL also won't work now. I confirmed that by remoting. The sherpa-onnx-portaudio.zip (built with Visual Studio Build Tool 2022 on Windows 10 22H2) still works. That's really weird. Is there anything I can help or a method to catch log? |
I'm not familiar with the cmake process. But maybe this will help. The sherpa-onnx-portaudio.zip I got is from this-repo , following it's doc:
and in the It used the pa_stable_v190700_20210406.tgz to build, instead of the portaudio github repo. Here is it's cmake file of portaudio: function(download_portaudio)
include(FetchContent)
set(portaudio_URL "https://files.portaudio.com/archives/pa_stable_v190700_20210406.tgz")
set(portaudio_URL2 "https://huggingface.co/csukuangfj/sherpa-onnx-cmake-deps/resolve/main/pa_stable_v190700_20210406.tgz")
set(portaudio_HASH "SHA256=47efbf42c77c19a05d22e627d42873e991ec0c1357219c0d74ce6a2948cb2def")
# If you don't have access to the Internet, please download it to your
# local drive and modify the following line according to your needs.
set(possible_file_locations
$ENV{HOME}/Downloads/pa_stable_v190700_20210406.tgz
$ENV{HOME}/asr/pa_stable_v190700_20210406.tgz
${PROJECT_SOURCE_DIR}/pa_stable_v190700_20210406.tgz
${PROJECT_BINARY_DIR}/pa_stable_v190700_20210406.tgz
/tmp/pa_stable_v190700_20210406.tgz
/star-fj/fangjun/download/github/pa_stable_v190700_20210406.tgz
)
foreach(f IN LISTS possible_file_locations)
if(EXISTS ${f})
set(portaudio_URL "${f}")
file(TO_CMAKE_PATH "${portaudio_URL}" portaudio_URL)
message(STATUS "Found local downloaded portaudio: ${portaudio_URL}")
set(portaudio_URL2)
break()
endif()
endforeach()
if(BUILD_SHARED_LIBS)
set(PA_BUILD_SHARED ON CACHE BOOL "" FORCE)
set(PA_BUILD_STATIC OFF CACHE BOOL "" FORCE)
else()
set(PA_BUILD_SHARED OFF CACHE BOOL "" FORCE)
set(PA_BUILD_STATIC ON CACHE BOOL "" FORCE)
endif()
FetchContent_Declare(portaudio
URL
${portaudio_URL}
${portaudio_URL2}
URL_HASH ${portaudio_HASH}
)
FetchContent_GetProperties(portaudio)
if(NOT portaudio_POPULATED)
message(STATUS "Downloading portaudio from ${portaudio_URL}")
FetchContent_Populate(portaudio)
endif()
message(STATUS "portaudio is downloaded to ${portaudio_SOURCE_DIR}")
message(STATUS "portaudio's binary dir is ${portaudio_BINARY_DIR}")
if(APPLE)
set(CMAKE_MACOSX_RPATH ON) # to solve the following warning on macOS
endif()
add_subdirectory(${portaudio_SOURCE_DIR} ${portaudio_BINARY_DIR} EXCLUDE_FROM_ALL)
if(BUILD_SHARED_LIBS)
set_target_properties(portaudio PROPERTIES OUTPUT_NAME "sherpa-onnx-portaudio")
if(NOT WIN32)
target_compile_options(portaudio PRIVATE "-Wno-deprecated-declarations")
endif()
if(SHERPA_ONNX_ENABLE_PYTHON AND WIN32)
install(TARGETS portaudio DESTINATION ..)
else()
install(TARGETS portaudio DESTINATION lib)
endif()
else()
set_target_properties(portaudio_static PROPERTIES OUTPUT_NAME "sherpa-onnx-portaudio_static")
if(NOT WIN32)
target_compile_options(portaudio_static PRIVATE "-Wno-deprecated-declarations")
endif()
if(SHERPA_ONNX_ENABLE_PYTHON AND WIN32)
install(TARGETS portaudio_static DESTINATION ..)
else()
install(TARGETS portaudio_static DESTINATION lib)
endif()
endif()
endfunction()
download_portaudio()
# Note
# See http://portaudio.com/docs/v19-doxydocs/tutorial_start.html
# for how to use portaudio
|
Thanks for testing this again!
That is indeed weird. As long as the new DLL works that's great!
Yes, you could help with 2 things:
|
I have released a new version with new DLLs: https://pypi.org/project/sounddevice/0.5.0/ Please check if this solves the problem. |
Today I met a Win10 22H2 computer which can not import sounddevice (0.4.6) neither with Python3.8 nor Python3.10.
It's when the code run to
_check(_lib.Pa_Initialize(), 'Error initializing PortAudio')
that the python interpreter froze, just froze still.I realized it's maybe the
dll
problem, but I have no ability to debug more.So I replaced the
libportaudio64bit.dll
withsherpa-onnx-portaudio.zip which came from another module (portaudio compiled using Vusual Studio Build Tool) and the problem solved.
I think I should let you know that.
The text was updated successfully, but these errors were encountered: