Add HarmonyOS support for text-to-speech. (#1584)

This commit is contained in:
Fangjun Kuang
2024-12-01 21:43:34 +08:00
committed by GitHub
parent a3d6e1acc7
commit dc3287f3a8
33 changed files with 333 additions and 133 deletions

View File

@@ -2,20 +2,24 @@
//
// Copyright (c) 2023 Xiaomi Corporation
#if __ANDROID_API__ >= 9
#include <strstream>
#include "android/asset_manager.h"
#include "android/asset_manager_jni.h"
#endif
#include <algorithm>
#include <cctype>
#include <codecvt>
#include <fstream>
#include <locale>
#include <sstream>
#include <strstream>
#include <utility>
#if __ANDROID_API__ >= 9
#include "android/asset_manager.h"
#include "android/asset_manager_jni.h"
#endif
#if __OHOS__
#include "rawfile/raw_file_manager.h"
#endif
#include "sherpa-onnx/csrc/macros.h"
#include "sherpa-onnx/csrc/offline-tts-character-frontend.h"
#include "sherpa-onnx/csrc/onnx-utils.h"
@@ -82,9 +86,9 @@ OfflineTtsCharacterFrontend::OfflineTtsCharacterFrontend(
token2id_ = ReadTokens(is);
}
#if __ANDROID_API__ >= 9
template <typename Manager>
OfflineTtsCharacterFrontend::OfflineTtsCharacterFrontend(
AAssetManager *mgr, const std::string &tokens,
Manager *mgr, const std::string &tokens,
const OfflineTtsVitsModelMetaData &meta_data)
: meta_data_(meta_data) {
auto buf = ReadFile(mgr, tokens);
@@ -92,8 +96,6 @@ OfflineTtsCharacterFrontend::OfflineTtsCharacterFrontend(
token2id_ = ReadTokens(is);
}
#endif
std::vector<TokenIDs> OfflineTtsCharacterFrontend::ConvertTextToTokenIds(
const std::string &_text, const std::string & /*voice = ""*/) const {
// see
@@ -189,4 +191,18 @@ std::vector<TokenIDs> OfflineTtsCharacterFrontend::ConvertTextToTokenIds(
return ans;
}
#if __ANDROID_API__ >= 9
template OfflineTtsCharacterFrontend::OfflineTtsCharacterFrontend(
AAssetManager *mgr, const std::string &tokens,
const OfflineTtsVitsModelMetaData &meta_data);
#endif
#if __OHOS__
template OfflineTtsCharacterFrontend::OfflineTtsCharacterFrontend(
NativeResourceManager *mgr, const std::string &tokens,
const OfflineTtsVitsModelMetaData &meta_data);
#endif
} // namespace sherpa_onnx