分类目录归档:未分类

Qt For Android在Window中用脚本批量编译参考

想得太天真了,以为在Windows解决个别仓库的脚本编译问题,就可以一劳永逸地在Window中自由开发安卓了,当连接的第三方库越多,越会发现选择在Windows中开发安卓是多么悲壮的事情,有些库是无法在windows中编译的如openssl。

如果非要在Windows中开发呢?有一个方案就是在Linux编译,生成库文件,在Windows中使用,但那又苦呢?

——————————————————————

几经波折及艰难的研究Android编译过程,最后总算编写出完整的、能在Windows运行的与Qt默认方式编译一致的脚本【网上也有Nijia的编译方式】,具体如下,

@echo off
set path_script=%~dp0

cd /D %path_script%
rd /s/q "%path_script%\build"
rd /s/q "%path_script%\android"

md "%path_script%\build"
cd /D "%path_script%\build"




set ANDROID_NDK_HOST=windows-x86_64
set ANDROID_SDK_ROOT=E:/android/AndroidSdk
set ANDROID_NDK_ROOT=%ANDROID_SDK_ROOT%/ndk/21.3.6528147
set QT_ROOT=C:\Qt\Qt5.12.12
set PATH=%PATH%;%QT_ROOT%\Tools\QtCreator\bin\jom\;%QT_ROOT%\Tools\QtCreator\bin

if not exist "%ANDROID_SDK_ROOT%" (
    echo "not exist path:%ANDROID_SDK_ROOT%"
    pause
)

if not exist "%ANDROID_NDK_ROOT%" (
    echo "not exist path:%ANDROID_NDK_ROOT%"
    pause
)

setlocal enabledelayedexpansion
for %%i in ("x86","armeabi-v7a","arm64-v8a") do (     
    cd %path_script%
    rd /s/q "%path_script%\build"   
    md "%path_script%\build"
    if %%i=="x86" (
        echo "abi type:x86"
        set arch=x86
        set abi=x86
    )
    if %%i=="armeabi-v7a" (
        echo "abi type: armeabi-v7a"
        set arch=armv7
        set abi=armeabi-v7a
    )
    if %%i=="arm64-v8a" (
        echo "abi type: arm64-v8a"
        set arch=arm64_v8a
        set abi=arm64-v8a
    )
    set QTDIR=%QT_ROOT%\5.12.12\android_!arch!
    if not exist "!QTDIR!" (
        echo "not exist path:!QTDIR!"
        pause
    )
    set ANDROID_DEFINITION="-GNMake Makefiles JOM"
    set ANDROID_DEFINITION=!ANDROID_DEFINITION! "-DCMAKE_PROJECT_INCLUDE_BEFORE:PATH=!QT_ROOT!/Tools/QtCreator/share/qtcreator/package-manager/auto-setup.cmake"
    set ANDROID_DEFINITION=!ANDROID_DEFINITION! "-DQT_QMAKE_EXECUTABLE:STRING=!QTDIR!/bin/qmake.exe"
    set ANDROID_DEFINITION=!ANDROID_DEFINITION! "-DCMAKE_PREFIX_PATH:STRING=!QTDIR!"
    set ANDROID_DEFINITION=!ANDROID_DEFINITION! "-DCMAKE_C_COMPILER:STRING=!ANDROID_NDK_ROOT!/toolchains/llvm/prebuilt/windows-x86_64/bin/clang.exe"
    set ANDROID_DEFINITION=!ANDROID_DEFINITION! "-DCMAKE_CXX_COMPILER:STRING=!ANDROID_NDK_ROOT!/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++.exe"
    set ANDROID_DEFINITION=!ANDROID_DEFINITION! "-DANDROID_NDK:PATH=!ANDROID_NDK_ROOT!"
    set ANDROID_DEFINITION=!ANDROID_DEFINITION! "-DCMAKE_TOOLCHAIN_FILE:PATH=!ANDROID_NDK_ROOT!/build/cmake/android.toolchain.cmake"
    set ANDROID_DEFINITION=!ANDROID_DEFINITION! "-DANDROID_STL:STRING=c++_shared"
    set ANDROID_DEFINITION=!ANDROID_DEFINITION! "-DCMAKE_FIND_ROOT_PATH:PATH=!QTDIR!"
    set ANDROID_DEFINITION=!ANDROID_DEFINITION! "-DANDROID_SDK:PATH=!ANDROID_SDK_ROOT!"
    set ANDROID_DEFINITION=!ANDROID_DEFINITION! "-DANDROID_NATIVE_API_LEVEL:STRING=16"
    set ANDROID_DEFINITION=!ANDROID_DEFINITION! "-DANDROID_ABI:STRING=!abi!"
    set ANDROID_DEFINITION=!ANDROID_DEFINITION! "-DBUILD_SHARED_LIBS:STRING=OFF"

    cd %path_script%/build && cmake.exe  ../zlib-1.2.11 !ANDROID_DEFINITION! -DCMAKE_INSTALL_PREFIX="%path_script%/android/!abi!" 
    cmake --build . --config Release && cmake --build ./ --config Release --target install
)
endlocal
cd %path_script%

安装build-essential报错的解决方案

安装build-essential报以下错误。

The following packages have unmet dependencies:
 build-essential : Depends: libc6-dev but it is not going to be installed or
                            libc-dev
                   Depends: gcc (>= 4:7.2) but it is not going to be installed
                   Depends: g++ (>= 4:7.2) but it is not going to be installed
                   Depends: dpkg-dev (>= 1.17.11) but it is not going to be inst

解决方案

断网重装可以解决,因为不断网时,系统获取升级文件,升级了内核很多新问题,产生冲突了。

从零开始构建:Qt与AndroidStudio混合调试

1.报Failed to find Build Tools revision 28.0.3的错误,如下所示:

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'android-build'.
> Failed to find Build Tools revision 28.0.3
关注红色提示,“Failed to find Build Tools revision 28.0.3”

AndroidStudio的代理配置,

Android Studio的代理设置,一定要填写代理的域名,否则就等于没有变化或无效了。

在执行gladle构建时,总提示dl.google.com的443没有连接上,但奇怪的是使用AndroidSDK也是使用dl.google.com进行版本更新的,一直也很流畅。所以一直没有怀疑是防火墙问题,后来也把代理填上了,但没有填写No proxy for:的相关字段,也是无法连接上。

最后实在没有办法了,在no proxy for 都填上了,却发现可以下载了,神奇吧。

现在想想,应该是Android SDK的更新,应该是设置了内部翻墙的能力了。

分词开源-语音数据集DataSet

TTS mandarin

数据描述链接
1baker标贝女声12小时Link
2Aishell-385小时88035句多说话人数据Link
3DiDiSpeech500人60小时Link
4OpenSLR提供各种语言的合成、识别等语料Link
5zhvoice3200说话人900小时,用于声音复刻,合成,识别等Link

TTS english

数据描述链接
1LibriTTSmultispeakers,大约585小时Link
2LJ Speech大约24小时Link
3VCTK109发音人,每人400句Link
4OpenSLR提供各种语言的合成、识别等语料Link
5HiFi-TTS291.6小时,10发音人Link
6open speech corpora各类数据搜集Link
7RyanSpeech10小时conversation10小时conversation10小时conversation10小时conversation10小时conversation10小时conversation10小时conversation10小时conversation10小时conversation10小时conversationLink
Link

TTS emotion

数据描述链接
1ESD10位英语和10位中文发音人5种情感,主要应用VC,TTSLink
2IEMOCAP12小时音视频情感Link
3EmoV_DBenglish and french 5种情感Link
4Thorsten Müllersingle german speaker dataset (Neutral, Disgusted, Angry, Amused, Surprised, Sleepy, Drunk, Whispering) 175分钟Link
5TAL_SER4541条语音,总时长12.5小时,愉悦度和激情度两个维度。Link

TTS dialect

数据描述链接
1RuSLAN31小时高质量俄语Link
2M-AILABS1000小时,German,English,Spanish,Italian,Ukrainian,Russsian,French,PolishLink
3OpenSLR提供各种语言的合成、识别等语料Link
4css10greek,spanish,finish,french,hungarian,japanese,dutch,russian,chinese数据Link

TTS frontend

数据描述链接
1polyphone14 top多音字Link

ASR mandarin

数据描述链接
1WenetSpeech10000小时,强烈推荐Link
2Aishell-1178小时Link
3Aishell-21000小时Link
4mozilla common voice提供各种语言的音频,目前14122小时87中语言Link
5OpenSLR提供各种语言的合成、识别等语料Link
6open speech corpora各类数据搜集Link
7AiShell-4211场会议,120小时Link
8AliMeeting118.75小时会议数据Link
9Free ST Chinese Mandarin Corpus855发音人102600句手机录制Link
10aidatatang_200zh200小时600发音人文本准确98%Link
11magicData-RAMC180小时中文spontaneous conversationLink   Link
12TAL_CSASR中英混合587小时Link
13TAL_ASR100小时讲课Link

ASR english

数据描述链接
1GigaSpeech10000小时,强烈推荐Link
2mozilla common voice提供各种语言的音频,目前14122小时87中语言Link
3OpenSLR提供各种语言的合成、识别等语料Link
4Chime-4Link
5People’s speech30000小时英文Link
6LibriSpeech1000小时audiobooksLink
7earnings2139小时电话会议Link
8MLS50000小时多语言语料Link
9open speech corpora各类数据搜集Link
10TED-LIUM 3452小时Link
11VoxForge讲话转录Link

ASR other language

数据描述链接
1M-AILABS1000小时,German,English,Spanish,Italian,Ukrainian,Russsian,French,PolishLink
2mozilla common voice提供各种语言的音频,目前14122小时87中语言Link
3OpenSLR提供各种语言的合成、识别等语料Link
4CI-AVSRcantonese粤语车内auido-visual数据.8.3小时Link
5open speech corpora各类数据搜集Link
6Hindi1111小时Link
7Samrómur Queries 21.12Samrómur Icelandic Speech corpus 20小时Link
8Samrómur Children 21.09Icelandic Speech from childrenLink
9Golos1240小时RussianLink
10MediaSpeech10小时French, Arabic, Turkish and Spanish media speechLink
Link

Noise

数据描述链接
1Demand各种各样的噪声Link
2Noisex-92噪声Link
3MUSANmusic, speech, and noiseLink
4Room Impulse Response and NoiseeRoom Impulse Response and Noise DatabaseLink

Sing

数据描述链接
1Opencpop100首专业录制的歌,44khz音频Link
2OpenSinger93 singers 50小时Link
3PopCS127首中文歌曲Link
4ctmsa7000小时音乐Link

Speech2Speech

数据描述链接
1cvss21种语言转英语Link
Link

Speaker diarisation

数据描述链接
1AiShell-4211场会议,120小时Link
2AliMeeting118.75小时会议数据Link
3magicData-RAMC180小时中文spontaneous conversationLink

WakeUp

数据描述链接
1WakeUp-1中英文1561小时Link
2HI-MIA340说话人,智能家居Link

Speech translation

数据描述链接
1Fisher–CALLHOMEEs→En 160hrsLink
2STCEn↔Jp 22hrsLink
3How2En→Pt 300hrsLink
4IWSLT 2018En→De 273hrsLink
5LIBRI-TRANSEn→Fr 236hrsLink
6MuST-CEn→ 14 lang. (237-504hrs)Link
7CoVoSTEn→15 lang. (929hrs),
21
Link
8Europarl-ST9 lang. (72 dir., 10-90hrs)Link
9LibriVoxDeEnDe→En 100hrsLink
10MaSS8 lang. (56 dir.) 20hrsLink
11BSTCZh→En 50hrsLink
12Multilingual TEDx8 lang.→6 lang. 11-69hrsLink

Other

数据描述链接
1SEP-28k口吃语料Link
2FluencyBank口吃语料Link

使用zlib动态库报错

项目本来是使用zlibstatic的,后来改为使用zlib动态库,但不知道何处仍然使用了zlibstatic,导致无法切换为动态库形式。

Qt已经自带的zlib的连接库。qCompress函数,1~9级。