2021-03-15 kaggle上Speech-Transformer項(xiàng)目問題

注冊(cè)Kaggle賬戶,可以用gmail壕翩,或者其他郵箱蛉迹,國內(nèi)注冊(cè)驗(yàn)證碼顯示不出,可用谷歌訪問助手注冊(cè)
https://www.kaggle.com

上傳數(shù)據(jù)集

上傳過程較慢戈泼,也需要谷歌訪問助手之類工具輔助
上傳單個(gè)壓縮文件成功之后

添加數(shù)據(jù)集到項(xiàng)目輸入

但是input目錄下只讀權(quán)限婿禽,沒辦法解壓,所以考慮其他辦法解決

解壓縮文件到working目錄

解壓縮完成之后大猛,保存所有包括output結(jié)果


保存版本
查看版本詳細(xì)情況
查看output情況

可以將output結(jié)果上傳到Dataset扭倾,但是名稱不能與之前數(shù)據(jù)集重復(fù)!

將解壓后輸出結(jié)果上傳到data

最后仍然報(bào)錯(cuò)挽绩!提示test目錄已存在


錯(cuò)誤信息
可以將輸出結(jié)果當(dāng)作data導(dǎo)入

最后發(fā)現(xiàn)已經(jīng)有人共享了aishell數(shù)據(jù)集膛壹,可以直接搜索應(yīng)用
https://www.kaggle.com/peterhu/speech_data

將src目錄下多個(gè)py源碼上傳至dataset,notebook調(diào)用的時(shí)候加入以下代碼唉堪,即可指定import搜索路徑

import sys
sys.path.append(r'../input/speech-transformer-project/Speech-Transformer/src/bin')
sys.path.append(r'../input/speech-transformer-project/Speech-Transformer/src/data')
sys.path.append(r'../input/speech-transformer-project/Speech-Transformer/src/solver')
sys.path.append(r'../input/speech-transformer-project/Speech-Transformer/src/transformer')
sys.path.append(r'../input/speech-transformer-project/Speech-Transformer/src/utils')

運(yùn)行過程中報(bào)錯(cuò):

---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-1-6e16a70dc4aa> in <module>
     14 #from thop import profile
     15 
---> 16 from data import AudioDataLoader, AudioDataset
     17 from decoder import Decoder
     18 from encoder import Encoder

/kaggle/input/speech-transformer-project/Speech-Transformer/src/data/data.py in <module>
     15 import torch.utils.data as data
     16 
---> 17 import kaldi_io
     18 from utils import IGNORE_ID, pad_list
     19 

ModuleNotFoundError: No module named 'kaldi_io'

kaggle需要安裝第三方庫模聋,在console輸入:
pip install kaldiio (如果在notebook內(nèi)運(yùn)行,pip前面需要加“唠亚!”)

WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError(': Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/kaldiio/

未設(shè)置聯(lián)網(wǎng)功能链方,無法安裝使用第三方庫


需要手機(jī)驗(yàn)證

驗(yàn)證時(shí),需選擇國家如中國(+86)灶搜,然后填手機(jī)號(hào)祟蚀,等待驗(yàn)證碼。(人機(jī)驗(yàn)證碼可能也需要借助谷歌助手)割卖,完成之后需要打開網(wǎng)絡(luò)開關(guān)前酿。


驗(yàn)證完成之后GPU也可以設(shè)置使用了
GPU設(shè)置

TPU設(shè)置

安裝第三方庫kaldiio,重啟kernel仍然報(bào)錯(cuò)鹏溯,好像是需要安裝kaldi_io?


更改notebook的默認(rèn)工作目錄

# change working directory 
import os

if os.path.basename(os.getcwd()) == 'working':
    os.chdir('./Speech-Transformer/egs/aishell/')
print('current working directory is {}'.format(os.getcwd()))

# 獲取當(dāng)前路徑罢维,列出文件
print(os.getcwd())
print(os.listdir(os.getcwd()))

由于kaggle只能編輯ipynb文件,而py和sh文件可以通過數(shù)據(jù)集上傳丙挽,但是無法修改肺孵。
暫時(shí)想到的辦法是本地修改源碼,然后通過上傳數(shù)據(jù)集颜阐,更新原版本替換原有源碼平窘;之后再將其cp到working目錄下運(yùn)行?

下載kaldi

!cd /kaggle/working
!git clone https://github.com/kaldi-asr/kaldi.git
Cloning into 'kaldi'...
remote: Enumerating objects: 11, done.
remote: Counting objects: 100% (11/11), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 113300 (delta 2), reused 10 (delta 2), pack-reused 113289
Receiving objects: 100% (113300/113300), 121.03 MiB | 19.96 MiB/s, done.
Resolving deltas: 100% (87516/87516), done.

設(shè)定Speech-Transformer/egs/aishell/目錄下軟鏈接

!ln -s /kaggle/working/kaldi/egs/wsj/s5/steps ./
!ln -s /kaggle/working/kaldi/egs/wsj/s5/utils ./

根據(jù)目錄下INSTALL文件說明瞬浓,先進(jìn)入tools進(jìn)行make,然后再進(jìn)入src進(jìn)行make蓬坡,成功完成之后猿棉,生成fbank特征提取所需工具compute-fbank-feats磅叛、copy-feats等等。
如果不進(jìn)行make萨赁,源碼中只有.cc文件弊琴,執(zhí)行fbank特征提取時(shí)會(huì)找不到所需工具。

切換到tools目錄下(此處cd前面用%杖爽,而不用敲董!,!表示在子shell內(nèi)運(yùn)行慰安,下一行會(huì)失效)

!pwd
%cd /kaggle/working/kaldi/tools
!ls

檢查依賴情況腋寨,更加提示安裝依賴

!extras/check_dependencies.sh
!apt -y install automake autoconf sox gfortran subversion

默認(rèn)安裝MKL庫,報(bào)錯(cuò)

!extras/install_mkl.sh
Certificate verification failed: The certificate is NOT trusted. The certificate issuer is unknown.  Could not handshake: Error in the certificate verification. [IP: 184.30.128.247 443]

改用安裝openblas替代

!extras/install_openblas.sh
# 編譯tools化焕,kaggle最高CPU運(yùn)行400%萄窜,預(yù)計(jì)提供的cpu為4核,此處可改為4
!make -j 8

切換到src目錄

!pwd
%cd /kaggle/working/kaldi/src
!ls

編譯步驟(增加 --mathlib=OPENBLAS撒桨,默認(rèn)不需要)

!./configure --shared --mathlib=OPENBLAS
!make depend -j 8
!make -j 8

編譯成功完成查刻!

將input中的數(shù)據(jù)(更新到最新版本),copy到working目錄下

!cp -r /kaggle/input/speech-transformer-project/Speech-Transformer /kaggle/working/
!ls

切換默認(rèn)工作目錄

%cd /kaggle/working
# change working directory 
import os

if os.path.basename(os.getcwd()) == 'working':
    os.chdir('./Speech-Transformer/egs/aishell/')
print('current working directory is {}'.format(os.getcwd()))

替換 steps utils 目錄為kaldi軟鏈接

!rm -R steps utils
!ln -s /kaggle/working/kaldi/egs/wsj/s5/steps /kaggle/working/Speech-Transformer/egs/aishell/
!ln -s /kaggle/working/kaldi/egs/wsj/s5/utils /kaggle/working/Speech-Transformer/egs/aishell/
!ls -l

改變系統(tǒng)環(huán)境變量($PATH)

import os
os.environ['KALDI_ROOT'] = '/kaggle/working/kaldi'
os.environ['PATH'] = '/kaggle/working/kaldi/src/bin:/kaggle/working/kaldi/src/lmbin:/kaggle/working/kaldi/src/fstbin:/kaggle/working/kaldi/src/gmmbin:/kaggle/working/kaldi/src/kwsbin:/kaggle/working/kaldi/src/latbin:/kaggle/working/kaldi/src/featbin:/kaggle/working/kaldi/src/fgmmbin:/kaggle/working/kaldi/src/sgmm2bin:/kaggle/working/kaldi/src/chainbin/:/kaggle/working/kaldi/src/nnetbin/:/kaggle/working/kaldi/src/nnet2bin:/kaggle/working/kaldi/src/nnet3bin:/kaggle/working/kaldi/src/onlinebin:/kaggle/working/kaldi/src/online2bin:/kaggle/working/kaldi/src/ivectorbin:/kaggle/working/kaldi/tools/openfst-1.6.2/bin:/kaggle/working/kaldi/egs/wsj/s5/utils:/kaggle/working/kaldi/egs/wsj/s5/steps:/opt/conda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'

執(zhí)行run.sh

!chmod +x * -R
# !chmod +x */*.sh
!ls -l
!./run.sh --checkpoint 0 --stage 0 --visdom 0 --visdom_id "train test" --visdom_lr 0  --visdom_epoch 0 --LFR_m 1 --LFR_n 1 --batch_frames 1500 --batch-size 16 --print-freq 100 --num-workers 4 

有些文件可能會(huì)沒有執(zhí)行權(quán)限凤类,通過設(shè)置賦予可執(zhí)行權(quán)限

!chmod +x /kaggle/working/Speech-Transformer/* -R
中途報(bào)錯(cuò)

權(quán)限修改完之后運(yùn)行成功

Data Preparation
Feature Generation

stage 2步驟出現(xiàn)錯(cuò)誤穗泵,未發(fā)現(xiàn)bc命令

安裝bc命令,使用apt install谜疤,安裝之后bc在/usr/bin目錄下

# !pip install bc
!apt install bc

成功完成stage 0佃延、1、2步茎截,保存version苇侵。(Quick Save只保存當(dāng)前快照,無法保存輸出文件)
打開Accelerator配置選擇GPU企锌,會(huì)自動(dòng)清除輸出文件榆浓,需提前保存version。

Creating Save & Run All指保存并run all ?

運(yùn)行時(shí)間1個(gè)多小時(shí)撕攒,編譯了kaldi工具陡鹃,特征提取步驟出現(xiàn)點(diǎn)問題,所以沒有保存下來抖坪,可以將kaldi結(jié)果上傳至數(shù)據(jù)集萍鲸,供另一個(gè)工程作為dataset使用。

保存成功之后包含輸出文件

可以通過點(diǎn)擊顯示版本擦俐,進(jìn)行版本管理

點(diǎn)擊顯示版本
可以對(duì)不同版本進(jìn)行修改
保存出錯(cuò)的版本脊阴,可以中途取消
進(jìn)入Viewer
點(diǎn)擊版本
轉(zhuǎn)圈顯示正在進(jìn)行中

還可以通過Select Diff來對(duì)比不同版本的不同之處。

選中版本9與版本7對(duì)比
顯示版本的不同之處
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市嘿期,隨后出現(xiàn)的幾起案子品擎,更是在濱河造成了極大的恐慌,老刑警劉巖备徐,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件萄传,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蜜猾,警方通過查閱死者的電腦和手機(jī)秀菱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蹭睡,“玉大人衍菱,你說我怎么就攤上這事√男Γ” “怎么了梦碗?”我有些...
    開封第一講書人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蓖救。 經(jīng)常有香客問我洪规,道長,這世上最難降的妖魔是什么循捺? 我笑而不...
    開封第一講書人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任斩例,我火速辦了婚禮,結(jié)果婚禮上从橘,老公的妹妹穿的比我還像新娘念赶。我一直安慰自己,他們只是感情好恰力,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開白布叉谜。 她就那樣靜靜地躺著,像睡著了一般踩萎。 火紅的嫁衣襯著肌膚如雪停局。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評(píng)論 1 302
  • 那天香府,我揣著相機(jī)與錄音董栽,去河邊找鬼。 笑死企孩,一個(gè)胖子當(dāng)著我的面吹牛锭碳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播勿璃,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼擒抛,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼推汽!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起歧沪,我...
    開封第一講書人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤民泵,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后槽畔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡胁编,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年厢钧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嬉橙。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡早直,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出市框,到底是詐尸還是另有隱情霞扬,我是刑警寧澤,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布枫振,位于F島的核電站喻圃,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏粪滤。R本人自食惡果不足惜斧拍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望杖小。 院中可真熱鬧肆汹,春花似錦、人聲如沸予权。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽扫腺。三九已至岗照,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間斧账,已是汗流浹背谴返。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留咧织,地道東北人嗓袱。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像习绢,于是被迫代替她去往敵國和親渠抹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蝙昙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容