G2P 單詞到音素 的深度學習訓練測試

2021-07-13 20:20:14 字數 2883 閱讀 5812

音素提取是語音識別中的一塊重要內容。

g2p(grapheme-to-phoneme),英文意思是字素到音素,使用迴圈神經網路(recurrent neural network,rnn) 和lstm( long short-termmemory units),來實現從英文單詞到音素的轉化。lstm序列到序列模型(lstm sequence-to-sequencemodel)已經被成功地應用到許多專案中,這些應用包括機器翻譯,字素轉因素等等。

github上的g2p是基於google開源深度學習系統tensorflow實現的,所以在執行之前要先安裝tensorflow。

一、tensorflow安裝

安裝tensorflow的方法有很多種,可以用pip、virtualenv、anaconda、docker以及從源**安裝。這裡選擇 virtualenv,因為使用 virtualenv可以將tensorflow所需要的各種依賴安裝到指定的資料夾中,而不改變系統中原有的各種庫的版本。

使用 virtualenv安裝分為一下幾步:

1、安裝pip 和 virtualenv:

$ sudo apt-get installpython-pip python-dev python-virtualenv

2、設定virtualenv工作的資料夾為~/tensorflow:

$ virtualenv--system-site-packages ~/tensorflow

3、啟用工作環境,然後使用pip將tensorflow安裝在~/tensorflow中:

$source ~/tensorflow/bin/activate

(tensorflow)$  #

命令列變成了這樣 #

使用pip安裝,

這裡安裝只使用

cpu的版本

此時出現了問題:

oserror:[errno 2] 沒有那個檔案或目錄:'/usr/local/lib/python2.7/dist-packages/setuptools-18.1-py2.7.egg'

解決方法,解除安裝已經有的setuptools:

pip uninstall setuptools

再安裝一下,成功:

(tensorflow)$pip install --upgrade

安裝tensorflow之後,又出現問題:

importtensorflow 後,出現段錯誤segment fault

解決方法:

(1)解除安裝一些python庫:

sudo pip uninstall six wheel numpy scipysckit-image scikit-learn protobuf

(2)重新安裝:

(tensorflow)$pip install --upgrade

(3)成功:

>>>import tensorflow

>>>

二、下面是g2p的執行方式:

2、執行g2p最簡單的方式是使用命令列進行互動的方式:

$: pythong2p.py --interactive --model ~/work/g2p-seq2seq-cmudict

測試:

4、訓練g2p模型

訓練g2p模型需要乙個人工標註的字典:

然後根據這個字典就可以訓練模型了,用法如下:

$:python g2p.py --train train_dictionary.dic --model model_folder_path

訓練模型的語句中,還有一些引數可供選擇:

--max_steps:訓練迭代的次數(預設情況下 maxsteps=0,此時模型會不停的迭代, 直到訓練效果不能再好為止)。

--size:神經網路的節點數目(預設情況下 size=64),在實驗中發現,size=512  會擁有更好的結果,但是size=512時訓練時間會變長。

--num_layers:神經網路的層數(預設情況下num_layers=2),如果訓練集很小 的話,可以設定num_layers=1, 當num_layers=3時會得到更好的結果

python ~/work/g2p-seq2seq-master/g2p_seq2seq/g2p.py--train cmudict.dic.train --test cmudict.dic.test  --num_layers 2 --size 512 --model~/work/model1 --max_steps 0

同時還可以檢視乙個模型的識別準確率,用法如下:

$:pythong2p.py --evaluate test_dictionary.dic --model model_folder_path

同其中test_dictionary.dic

最後不得不說,在沒有大規模語料的情況下,準確率還是相當的低。。

從2G 3G到4G,流動網路為何比有線寬頻發展快

有線寬頻方面的話,先說adsl,從itu t 國際電信聯盟遠端通訊標準化組織 的資料庫可以看到,大約在1999年完成了第乙個技術標準版本的制定,可以提供約8mbs的理論下行速率和800多kbps的理論上行速率這樣子 itu制定的adsl標準還算是比較偏晚了的,早前已經有ansi等組織在著手adsl規...

只需這2步驟將Eclipse專案共享到GitHub

如果您在eclipse工作區中有乙個專案,並且想在github上共享它,該如何做?很簡單的!假設您已經註冊了github帳戶並且已經在計算機上安裝了git,則可以通過兩個簡單的步驟將eclipse專案共享到github。注意 以下方法適用於mac,linux和windows 假設您已在windows...

Python ubuntu下py2公升級到py3

1 ubuntu預設已經安裝了python python 檢視當前版本,我的是python2.7 2 公升級到python3,則 sudo apt get install python3 3 重新建立鏈結 此時預設python版本還是python2.7,需重新鏈結。刪除 usr bin python...