Administrator
Published on 2025-09-16 / 2 Visits
0
0

科大讯飞离线文字转语音使用说明

概述

在特定芯片环境下,可以使用科大讯飞的离线文字转语音SDK进行离线文字转语音。

本说明解释使用过程中部分卡点。

本说明针对的是离线文字转语音旧版普通版。

X86_64环境

下载

在普通X86_64环境下,可以直接下载官方后台的SDK包。

编译

编译时,根据系统位数,执行32bit_make.sh/64bit_make.sh即可。

交叉编译环境

说明

在交叉编译环境下(比如国科7205芯片),需要提供相关交叉编译链给到科大讯飞,让其编译出对应支持的libmsc.so库。

在交叉编译时,我们需要将交叉编译加载到宿主机环境下,然后修改Makefile文件,指定交叉编译链:

并且需将对已交叉编译后的对应芯片环境下的libmsc.so库替换到libs下,才能进行编译。

编译

编译时,根据系统位数,执行32bit_make.sh/64bit_make.sh即可,前提需要将对应芯片环境下的libmsc.so库替换到libs下。

报错

include ‘<string.h>’ or provide a declaration of ‘strlen’

执行make.sh脚本进行编译报错:

在tts_offline_sample.c文件中补充#include <string.h>即可。

can't load library 'libmsc.so'

执行官方demo时,报该错,改错是系统没加载so库导致,看"其他说明-libmsc.so"的加载方法,加载即可。

可执行文件转语音时库报10102

该问题是msc/res/tts目录的jet格式资源没被识别到,需要检查是否存在jet资源,msc目录跟可执行文件是否同个目录,如果还不行,将msc/res/tts改成msc/res/xtts测试。

其他说明

msc

msc目录是文字转语音必需的资源目录,我们从官方下载的目录中,就包含msc目录,该目录需要与执行文本在同目录下。

我们下载的,或后面使用过程中,可能除了msc/res/tts目录外,还是一些其他的文件,经实验,其他都可以删除,不影响文字转语音,只要确保msc/res/tts目录下的jet格式资源就行。

msc资源为任意芯片环境下通用,不需要额外交叉编译。

libmsc.so

该库是必须的,根据不同芯片环境,需要不同的库(提供交叉编译链给科大讯飞厂家,编译不同芯片的库)。

该库需要进行加载后,可执行文件才能正常运行转出语音文件,在系统通过下面命令行进行加载(重启后失效):
export LD_LIBRARY_PATH=$(pwd)/libs/x64/
(其中$(pwd)/libs/x64/为so库的绝对路径,$(pwd)代表执行时的当前路径)

运行必要文件

能正常转出语音,除了可执行程序后,只需要libmsc.so和msc即可,无需其他。


Comment