最近在看一些底层语音算法的实现。发现是C++实现了Java调用的接口,Java端(平台)调用这个接口,传递过来要处理的文本。
在算法这边使用C++对文本处理,并且还调用了Python写的模型,最后生成平台要转换成的音频文件。最后,C++生成一个动态
库文件给平台端去集成。我疑惑的地方是,只有一个动态库,那Java调用的时候,那些处理的模型是怎么使用的?
你的问题可分解为两个问题:
1 开发语言之间互调
1.1 java调c++
1.2 c++调java
1.3 c++调python
1.4 python调c++
2 语音处理算法和相关业务流程
对于这两个问题:
1 可以网上找资料,示例等
高级编程语言(java python javascript lua等)与native编程语言(c c++ 汇编等)互调基本原理是,
高级编程语言的执行引擎(如jvm,v8等),提供了互调相关的接口(如注册一个native函数),来支持互调功能
2 算法和业务流程,不管是简单的还是复杂的,跟用什么编程语言也没有任何关系,
你实际项目用到的你自己最清楚,你不清楚的可以问你们这个项目的负责人、架构师、其他开发人员等