前提:重装了系统:
c++/qt windows10 语音模块TTS异常,数据库缺少驱动
一:语音模块不能播放
qt使用语音模块时,在初始化时出现异常:
onecore\com\combase\dcomrem\resolver.cxx(2299)\combase.dll!00007FF85162E3AD: (caller: 00007FF85162B29E) ReturnHr(1) tid(3384) 80040154 没有注册类
onecore\com\combase\dcomrem\resolver.cxx(2507)\combase.dll!00007FF85162B2C6: (caller: 00007FF85162DC15) ReturnHr(2) tid(3384) 80040154 没有注册类
Could not init voice
("sapi")
No voice found for given locale
同样的,vs下的tts语音识别模块也是这样的错误。
HRESULT hr = m_cpVoice.CoCreateInstance(CLSID_SpVoice);//重装完系统后,此函数返回false,错误提示为
onecore\com\combase\dcomrem\resolver.cxx(2299)\combase.dll!76CC640F: (caller: 76D3D7CC) ReturnHr(1) tid(11c4) 80040154 没有注册类
onecore\com\combase\dcomrem\resolver.cxx(2507)\combase.dll!76D3D7ED: (caller: 76CC7CE4) ReturnHr(2) tid(11c4) 80040154 没有注册类
tts语音模块出现问题的原因:
朗读女停止工作是什么原因? win7系统、win10系统 ,朗读女出现类似的错误提示 通常原因是:
1.你用的操作系统是被精简过的操作系统,朗读软件所需的系统 TTS语音引擎组件 被精简掉了。
2.因各种人为误操作,导致系统中的TTS语音引擎组件被破坏,或无法正常工作。
如果你用的是win7系统、win10系统 ,朗读软件无法运行,或者安装了语音库后却无法朗读;
始化失败是因为在重装系统的时候,该系统是精简版的,把语音模块阉割掉了。
解决办法: 修复tts语音模块
参考链接: win10、win7系统 tts 无法朗读 修复补丁
补丁下载地址:
tts修复补丁下载地址
如果上述地址没有下载链接,请移步
https://download.csdn.net/download/u012719076/87770341
二: 中文播放乱码
QTexttoSpeech封装类中 ,QT5.11.3版本 使用#pragma execution_character_set(“utf-8”)
但在qt5.12.6版本中 不能用,用了后中文播放的乱码
qt5.12.6版本中不能用 #pragma execution_character_set(“utf-8”)
三: error: C1083: 无法打开包括文件: “QTextToSpeech”: No such file or directory
明明添加了头文件,#include 但还是报错:
D:\excer\qt\ZhanTaiXianJie\Speeker\speakerimpl.h:3: error: C1083: 无法打开包括文件: “QTextToSpeech”: No such file or directory
由于封装类是在dll中,头文件中 不能使用#include ,必须使用class前置模式才可以。如果在头文件中添加了#include 就会报错error: C1083: 无法打开包括文件: “QTextToSpeech”: No such file or directory;
解决方案的 具体代码如下:
#include <QObject>
//#include <QTextToSpeech>//error: C1083: 无法打开包括文件: “QTextToSpeech”: No such file or directory
class QTextToSpeech;//类用于将字符串转换成语音并且实现异步播放
四:mysql驱动没加载 Driver not loaded Driver not loaded
运行程序时,会出现如下的报错
database-数据库-创建c成功QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
db failure "Driver not loaded Driver not loaded"
error: "Driver not loaded Driver not loaded"
发现 D:\QT\5.12.6\msvc2017_64\plugins\sqldrivers 文件夹下没有
qsqlmysql.dll
要重新编译mysql
编译mysql
mysql编译步骤
mysql.pro的内容修改如下:
TARGET = qsqlmysql
HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
#QMAKE_USE += mysql #注释掉 2023.5.11 ZWJ 重装系统后,驱动中没有qsqlmysql.dll
OTHER_FILES += mysql.json
PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)
#以下为新增部分2023.5.11
DESTDIR = $$PWD/sutMySQL #设置输出路径
INCLUDEPATH += "D:/MySQL/include/" #去mysql的安装路径下去找
DEPENDPATH += "D:/MySQL/include/"
LIBS += "D:/MySQL/lib/libmysql.lib"