一,TTS
QGC的语音提示,调用的是各平台自己的TTS引擎接口(TTS是Text To Speech的缩写,即“从文本到语音”,是人机对话的一部分,让机器能够说话)。
代码如下:
void QGCAudioWorker::say(QString inText)
{
#ifdef __android__
Q_UNUSED(inText);
#else
static bool threadInit = false;
if (!threadInit) {
threadInit = true;
init();
}
if (!muted)
{
QString text = fixTextMessageForAudio(inText);
#if defined _MSC_VER && defined QGC_SPEECH_ENABLED
HRESULT hr = pVoice->Speak(text.toStdWString().c_str(), SPF_DEFAULT, NULL);
if (FAILED(hr)) {
qDebug() << "Speak failed, HR:" << QString("%1").arg(hr, 0, 16);
}
#elif defined Q_OS_LINUX && defined QGC_SPEECH_ENABLED
// Set size of string for espeak: +1 for the null-character
unsigned int espeak_size = strlen(text.toStdString().c_str()) + 1;
espeak_Synth(text.toStdString().c_str(), espeak_size, 0, POS_CHARACTER, 0, espeakCHARS_AUTO, NULL, NULL);
espeak_Synchronize();
#elif (defined __macos__) && defined QGC_SPEECH_ENABLED
macSpeech.say(text.toStdString().c_str());
#elif (defined __ios__) && defined QGC_SPEECH_ENABLED
iOSSpeak(text);
#else
// Make sure there isn't an unused variable warning when speech output is disabled
Q_UNUSED(inText);
#endif
}
#endif // __android__
}
二,安装tts引擎
对于安卓6.0以下系统,有的暂不支持TTS引擎,但是可以手动安装,然后下载中文语音包来使用QGC语音提示功能。
链接: https://pan.baidu.com/s/1TJCtpQRExV5cOHbpQhHMpA
提取码: hrn9
使用科大讯飞3.0
三,安装中文语音包
设置-》语言和输入法-》文字转语音(TTS)输出-》Google文字转语音引擎-》安装语音数据包-》中文(中国)