@@ -25,6 +25,49 @@ dependencies { | |||
androidTestImplementation 'org.hamcrest:hamcrest-all:1.3' | |||
} | |||
android { | |||
compileSdk 33 | |||
ndkVersion "25.1.8937393" | |||
namespace "com.reecedunn.espeak" | |||
defaultConfig { | |||
minSdk 19 | |||
targetSdk 33 | |||
versionCode 22 | |||
versionName "1.52-dev" | |||
externalNativeBuild { | |||
cmake { | |||
arguments "-DUSE_ASYNC:BOOL=OFF", "-DUSE_MBROLA:BOOL=OFF" | |||
targets "ttsespeak", "espeak-data" | |||
} | |||
} | |||
} | |||
externalNativeBuild { | |||
cmake { | |||
path "jni/CMakeLists.txt" | |||
version "3.22.1" | |||
} | |||
} | |||
sourceSets { | |||
main { | |||
manifest.srcFile 'AndroidManifest.xml' | |||
java.srcDirs = ['src'] | |||
res.srcDirs = ['res'] | |||
} | |||
androidTest.setRoot('eSpeakTests') | |||
androidTest { | |||
java.srcDirs = ['eSpeakTests/src'] | |||
} | |||
} | |||
lint { | |||
abortOnError false | |||
} | |||
} | |||
tasks.register('checkData') { | |||
doFirst { | |||
assert file("../espeak-ng-data/en_dict").exists() | |||
@@ -37,13 +80,12 @@ tasks.register('checkData') { | |||
} | |||
tasks.register('createDataArchive', Zip) { | |||
dependsOn tasks.checkData | |||
preserveFileTimestamps = false | |||
reproducibleFileOrder = true | |||
archiveFileName = "espeakdata.zip" | |||
destinationDirectory = file("res/raw") | |||
from("../espeak-ng-data/") { | |||
from("build/generated/espeak-ng-data/") { | |||
into "espeak-ng-data" | |||
} | |||
} | |||
@@ -61,40 +103,10 @@ tasks.register('createDataVersion', Copy) { | |||
rename { return 'espeakdata_version' } | |||
into file("./res/raw") | |||
} | |||
preBuild.dependsOn createDataVersion | |||
android { | |||
compileSdk 33 | |||
ndkVersion "25.1.8937393" | |||
namespace "com.reecedunn.espeak" | |||
defaultConfig { | |||
minSdk 19 | |||
targetSdk 30 | |||
versionCode 22 | |||
versionName "1.52-dev" | |||
} | |||
externalNativeBuild { | |||
ndkBuild { | |||
path "jni/Android.mk" | |||
} | |||
} | |||
sourceSets { | |||
main { | |||
manifest.srcFile 'AndroidManifest.xml' | |||
java.srcDirs = ['src'] | |||
res.srcDirs = ['res'] | |||
} | |||
androidTest.setRoot('eSpeakTests') | |||
androidTest { | |||
java.srcDirs = ['eSpeakTests/src'] | |||
} | |||
} | |||
lint { | |||
abortOnError false | |||
} | |||
project.afterEvaluate { | |||
tasks.checkData.dependsOn(externalNativeBuildDebug) | |||
tasks.createDataArchive.dependsOn(externalNativeBuildDebug) | |||
javaPreCompileDebug.dependsOn(tasks.createDataVersion) | |||
javaPreCompileRelease.dependsOn(tasks.createDataVersion) | |||
} |
@@ -1,83 +0,0 @@ | |||
LOCAL_PATH:= $(call my-dir) | |||
include $(CLEAR_VARS) | |||
#LOCAL_CFLAGS = -std=c11 # speechplayer is c++ code | |||
# ucd-tools wide-character compatibility support: | |||
UCDTOOLS_SRC_PATH := ../../src/ucd-tools/src | |||
UCDTOOLS_SRC_FILES := \ | |||
$(subst $(LOCAL_PATH)/$(UCDTOOLS_SRC_PATH),$(UCDTOOLS_SRC_PATH),$(wildcard $(LOCAL_PATH)/$(UCDTOOLS_SRC_PATH)/*.c*)) | |||
LOCAL_SRC_FILES += $(UCDTOOLS_SRC_FILES) | |||
SPEECHPLAYER_SRC_FILES := \ | |||
../../src/speechPlayer/src/frame.cpp \ | |||
../../src/speechPlayer/src/speechPlayer.cpp \ | |||
../../src/speechPlayer/src/speechWaveGenerator.cpp | |||
LOCAL_SRC_FILES += $(SPEECHPLAYER_SRC_FILES) | |||
ESPEAK_SOURCES := \ | |||
src/libespeak-ng/common.c \ | |||
src/libespeak-ng/compiledata.c \ | |||
src/libespeak-ng/compiledict.c \ | |||
src/libespeak-ng/compilembrola.c \ | |||
src/libespeak-ng/dictionary.c \ | |||
src/libespeak-ng/encoding.c \ | |||
src/libespeak-ng/error.c \ | |||
src/libespeak-ng/espeak_api.c \ | |||
src/libespeak-ng/ieee80.c \ | |||
src/libespeak-ng/intonation.c \ | |||
src/libespeak-ng/klatt.c \ | |||
src/libespeak-ng/langopts.c \ | |||
src/libespeak-ng/mnemonics.c \ | |||
src/libespeak-ng/numbers.c \ | |||
src/libespeak-ng/phoneme.c \ | |||
src/libespeak-ng/phonemelist.c \ | |||
src/libespeak-ng/readclause.c \ | |||
src/libespeak-ng/setlengths.c \ | |||
src/libespeak-ng/soundicon.c \ | |||
src/libespeak-ng/spect.c \ | |||
src/libespeak-ng/speech.c \ | |||
src/libespeak-ng/sPlayer.c \ | |||
src/libespeak-ng/ssml.c \ | |||
src/libespeak-ng/synthdata.c \ | |||
src/libespeak-ng/synthesize.c \ | |||
src/libespeak-ng/synth_mbrola.c \ | |||
src/libespeak-ng/translate.c \ | |||
src/libespeak-ng/translateword.c \ | |||
src/libespeak-ng/tr_languages.c \ | |||
src/libespeak-ng/voices.c \ | |||
src/libespeak-ng/wavegen.c | |||
ESPEAK_SRC_PATH := ../../src | |||
ESPEAK_SRC_FILES := \ | |||
$(subst src/,$(ESPEAK_SRC_PATH)/,$(ESPEAK_SOURCES)) | |||
LOCAL_CFLAGS += -DINCLUDE_KLATT -DINCLUDE_SPEECHPLAYER -DINCLUDE_SONIC -DHAVE_ENDIAN_H | |||
LOCAL_SRC_FILES += \ | |||
$(filter-out $(BLACKLIST_SRC_FILES),$(ESPEAK_SRC_FILES)) | |||
# JNI | |||
LOCAL_SRC_FILES += \ | |||
$(subst $(LOCAL_PATH)/jni,jni,$(wildcard $(LOCAL_PATH)/jni/*.c)) | |||
# Common | |||
LOCAL_C_INCLUDES += \ | |||
$(LOCAL_PATH)/include \ | |||
$(LOCAL_PATH)/$(UCDTOOLS_SRC_PATH)/include \ | |||
$(LOCAL_PATH)/../../src/speechPlayer/include \ | |||
$(LOCAL_PATH)/$(ESPEAK_SRC_PATH)/include \ | |||
$(LOCAL_PATH)/$(ESPEAK_SRC_PATH)/include/compat | |||
LOCAL_LDLIBS := \ | |||
-llog | |||
LOCAL_MODULE := libttsespeak | |||
LOCAL_MODULE_TAGS := optional | |||
LOCAL_PRELINK_MODULE := false | |||
include $(BUILD_SHARED_LIBRARY) |
@@ -0,0 +1,26 @@ | |||
cmake_minimum_required(VERSION 3.8) | |||
project(espeak-android) | |||
add_subdirectory(../../ espeakng) | |||
add_custom_target( | |||
espeak-data | |||
COMMAND ${CMAKE_COMMAND} -B${CMAKE_CURRENT_BINARY_DIR}/../espeak-data ${CMAKE_CURRENT_SOURCE_DIR}/../../ | |||
COMMAND ${CMAKE_COMMAND} --build ${CMAKE_CURRENT_BINARY_DIR}/../espeak-data --target data | |||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_BINARY_DIR}/../espeak-data/espeak-ng-data ${CMAKE_SOURCE_DIR}/../build/generated/espeak-ng-data | |||
) | |||
message(STATUS "Data: ${CMAKE_CURRENT_SOURCE_DIR}") | |||
find_library(A_LOG log) | |||
add_library(ttsespeak SHARED | |||
jni/eSpeakService.c | |||
) | |||
target_include_directories(ttsespeak PRIVATE | |||
include | |||
) | |||
target_link_libraries(ttsespeak PRIVATE | |||
espeak-ng ${A_LOG} | |||
) |
@@ -26,6 +26,7 @@ | |||
#include <unistd.h> | |||
#include <stdlib.h> | |||
#include <stdbool.h> | |||
#include <string.h> | |||
#include <jni.h> | |||
#include <espeak/speak_lib.h> |