星星点点 2024-03-09 13:51 采纳率: 14.3%
浏览 98

想用snowboy在winodws下做语音唤醒snowboy在windows下怎么编译啊

需要做一个大屏的语音互动,win11,大屏当显示器用,想用snowboy做语音唤醒,折腾一个星期了
snowboy不能用pip snowboy安装,要编译
看流程很简单,首先git clone https://github.com/Kitt-AI/snowboy.git
然后进入snowboy/swig/Python目录或者snowboy/swig/Python3目录执行:make
出错如下:
PS D:\SSS\snowboy-master\swig\Python> make
process_begin: CreateProcess(NULL, python-config --cflags, ...) failed.
process_begin: CreateProcess(NULL, python-config --ldflags, ...) failed.
swig -I../../ -c++ -python -o snowboy-detect-swig.cc snowboy-detect-swig.i
g++ -I../../ -O3 -fPIC -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++0x -c snowboy-detect-swig.cc
snowboy-detect-swig.cc:201:21: fatal error: Python.h: No such file or directory

include <Python.h>

                 ^

compilation terminated.
make: *** [snowboy-detect-swig.o] 错误 1
哪里的问题啊,或者谁有编译好的文件发我一下

编译用的Makefile是这个

# Example Makefile that converts snowboy c++ library (snowboy-detect.a) to
# python3 library (_snowboydetect.so, snowboydetect.py), using swig.

# Please use swig-3.0.10 or up.
SWIG := swig

SWIG_VERSION := $(shell expr `$(SWIG) -version | grep -i Version | \
    sed "s/^.* //g" | sed -e "s/\.\([0-9][0-9]\)/\1/g" -e "s/\.\([0-9]\)/0\1/g" \
    -e "s/^[0-9]\{3,4\}$$/&00/"` \>= 30010)

ifeq ($(SWIG_VERSION), 0)
checkversion:
    $(info You need at least Swig 3.0.10 to run)
    $(info Your current version is $(shell $(SWIG) -version | grep -i Version))
    @exit -1
endif


SNOWBOYDETECTSWIGITF = snowboy-detect-swig.i
SNOWBOYDETECTSWIGOBJ = snowboy-detect-swig.o
SNOWBOYDETECTSWIGCC = snowboy-detect-swig.cc
SNOWBOYDETECTSWIGLIBFILE = _snowboydetect.so

TOPDIR := ../../
CXXFLAGS := -I$(TOPDIR) -O3 -fPIC -D_GLIBCXX_USE_CXX11_ABI=0
LDFLAGS :=

ifeq ($(shell uname), Darwin)
  CXX := clang++
  PYINC := $(shell python3-config --includes)
  # If you use Anaconda, the command `python3-config` will not return full path.
  # In this case, please manually specify the full path like the following:
  # PYLIBS := -L/Users/YOURNAME/anaconda3/lib/python3.6/config-3.6m-darwin -lpython3.6m -ldl -framework CoreFoundation
  PYLIBS := $(shell python3-config --ldflags)
  SWIGFLAGS := -bundle -flat_namespace -undefined suppress
  LDLIBS := -lm -ldl -framework Accelerate
  SNOWBOYDETECTLIBFILE = $(TOPDIR)/lib/osx/libsnowboy-detect.a
else
  CXX := g++
  PYINC := $(shell python3-config --cflags)
  PYLIBS := $(shell python3-config --ldflags)
  SWIGFLAGS := -shared
  CXXFLAGS += -std=c++0x
  # Make sure you have Atlas installed. You can statically link Atlas if you
  # would like to be able to move the library to a machine without Atlas.
  ifneq ("$(ldconfig -p | grep lapack_atlas)","")
    LDLIBS := -lm -ldl -lf77blas -lcblas -llapack_atlas -latlas
  else
    LDLIBS := -lm -ldl -lf77blas -lcblas -llapack -latlas
  endif
  SNOWBOYDETECTLIBFILE = $(TOPDIR)/lib/ubuntu64/libsnowboy-detect.a
  ifneq (,$(findstring arm,$(shell uname -m)))
    SNOWBOYDETECTLIBFILE = $(TOPDIR)/lib/rpi/libsnowboy-detect.a
    ifeq ($(findstring fc,$(shell uname -r)), fc)
      SNOWBOYDETECTLIBFILE = $(TOPDIR)/lib/fedora25-armv7/libsnowboy-detect.a
      LDLIBS := -L/usr/lib/atlas -lm -ldl -lsatlas
    endif
  endif
endif

all: $(SNOWBOYSWIGLIBFILE) $(SNOWBOYDETECTSWIGLIBFILE)

%.a:
    $(MAKE) -C ${@D} ${@F}

$(SNOWBOYDETECTSWIGCC): $(SNOWBOYDETECTSWIGITF)
    $(SWIG) -I$(TOPDIR) -c++ -python -o $(SNOWBOYDETECTSWIGCC) $(SNOWBOYDETECTSWIGITF)

$(SNOWBOYDETECTSWIGOBJ): $(SNOWBOYDETECTSWIGCC)
    $(CXX) $(PYINC) $(CXXFLAGS) -c $(SNOWBOYDETECTSWIGCC)

$(SNOWBOYDETECTSWIGLIBFILE): $(SNOWBOYDETECTSWIGOBJ) $(SNOWBOYDETECTLIBFILE)
    $(CXX) $(CXXFLAGS) $(LDFLAGS) $(SWIGFLAGS) $(SNOWBOYDETECTSWIGOBJ) \
    $(SNOWBOYDETECTLIBFILE) $(PYLIBS) $(LDLIBS) -o $(SNOWBOYDETECTSWIGLIBFILE)

clean:
    -rm -f *.o *.a *.so snowboydetect.py *.pyc $(SNOWBOYDETECTSWIGCC)


多谢了

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-03-09 13:52
    关注

    引自免费微信小程序:皆我百晓生

    在Windows环境下编译snowboy遇到的错误是由于系统无法找到Python.h头文件,这通常是因为Python开发环境未正确配置。为了解决这个问题,请按照以下步骤操作:

    1. 安装C++构建工具: 首先确保你的Windows系统已安装Visual Studio 2019或以上版本,并包含“C++桌面开发”工作负载。

    2. 安装Python开发包: 打开命令行(建议使用管理员权限),并执行以下命令安装Python开发包:

      python -m pip install --upgrade pip setuptools wheel
      python -m pip install pybind11
      
    3. 获取Python头文件和库: 安装python-devpython3-dev等对应Windows平台上的开发包,例如对于Python 3.x,可以下载Microsoft Visual C++ Compiler for Python 2.7/3.6/3.7/3.8/3.9(取决于你使用的Python版本):https://www.microsoft.com/en-us/download/details.aspx?id=44266

      或者,如果你的Python是通过Anaconda安装的,可以通过Anaconda Prompt安装对应的开发包:

      conda install libpython m2w64-toolchain -c msys2
      
    4. 修改Makefile: 在Makefile中,针对Windows环境进行一些调整,将查找Python头文件和库的方式改为Windows下的方式。可能需要替换掉python-config相关的命令,直接指定Python头文件目录和库文件目录。

    5. 手动编译: 根据Windows下的情况,可能需要手动编译 snowboy-detect-swig.cc 文件,而不是直接使用 make。你可以尝试用 cl.exe 编译器(Visual Studio的一部分)来编译该文件,并链接必要的库。

    鉴于上述解决方案在Windows下可能仍存在复杂性,snowboy官方已经不再维护,且并未提供明确的Windows编译指南,因此更推荐你在Windows上考虑使用兼容且易于部署的替代方案,如pocketsphinx、porcupine等语音唤醒引擎,这些都有现成的Windows版预编译包可以直接使用。或者,你也可以在支持snowboy原生编译的Linux环境下完成编译后,再将生成的Python库文件移植到Windows环境中使用。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月9日

悬赏问题

  • ¥15 Groimp使用疑问
  • ¥15 c++ 主窗口里面的菜单如何脱离主窗口
  • ¥15 MDK–ARM里一直找不到调试器
  • ¥15 oracle中sql查询问题
  • ¥15 vue使用gojs3.0版本,在nodeDataArray中的iconSrc使用gif本地路径,展示出来后动画是静态的,不是动态的
  • ¥100 代写个MATLAB代码,有偿
  • ¥15 ansys electronics 2021 R1安装报错,错误代码2,如图
  • ¥15 Dev-c++打字不出现中文,但出现日文
  • ¥30 搭建面包板由NE555N和SN74LS90N组成的计时电路时出了问题
  • ¥15 无源定位系统的时差估计误差标准差