Skip to content

Commit

Permalink
nifer o gwellianau. sgriptiau hyfforddi gyda corpws talentau llais
Browse files Browse the repository at this point in the history
  • Loading branch information
DewiBrynJones committed Mar 12, 2021
1 parent 849e7af commit 81ad56a
Show file tree
Hide file tree
Showing 20 changed files with 280 additions and 300 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ server/log
voicebuilder/audio/
voicebuilder/texts/
voicebuilder/mysql/
voicebuilder/egs/talentau-llais/test_audio

voices/*

Expand All @@ -17,3 +18,4 @@ mysql/*
*.PointProcess

marytts/marytts-languages/marytts-lang-cy/lib/modules/cy/lexicon/geiriadur-ynganu-bangor/*
.DS_Store
4 changes: 3 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ RUN dpkg --add-architecture i386

RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y default-jdk vim git curl wget zip locales maven \
python3 python3-pip \
python3 python3-pip software-properties-common \
&& rm -rf /var/lib/apt/lists/*

# Set the locale
Expand Down Expand Up @@ -33,5 +33,7 @@ WORKDIR ${MARYTTS_HOME}

RUN update-marytts-server-cy.sh

RUN voice-download.sh wispr

EXPOSE 59125

8 changes: 4 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
default: build

MARYTTS_CY_VERSION := 20.12
MARYTTS_CY_VERSION := 21.03

build:
build:
if [ ! -d "marytts" ]; then \
git clone https:https://git.techiaith.bangor.ac.uk/lleferydd/marytts.git; \
fi
git clone https:https://github.com/techiaith/marytts.git; \
fi
docker build --rm --build-arg BUILDARG_MARYTTS_CY_VERSION=${MARYTTS_CY_VERSION} -t techiaith/marytts:${MARYTTS_CY_VERSION} .


Expand Down
250 changes: 13 additions & 237 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,262 +1,38 @@
# docker-marytts

Yma ceir adnoddau ar gyfer rhedeg a ddatblygu testun-i-leferydd Cymraeg eich
hunain yn hwylus gan ddefnyddio MaryTTS a Docker.
Yma ceir testun-i-leferydd Cymraeg a ddwyieithog gan ddefnyddio MaryTTS a docker.

<hr/>
Ewch i'r ddogfennaeth yn y ffolder [`voicebuilder`](voicebuilder/README.md) am sgriptiau defnyddir i adeiladu lleisiau Cymraeg a ddwyieithog.

## Defnyddio lleisiau testun-i-leferydd o'r Porth Technolegau Iaith

Mae'r Uned Technolegau Iaith wedi defnyddio recordiadau o [Corpws WISPR]
(https://git.techiaith.bangor.ac.uk/Data-Porth-Technolegau-Iaith/Corpws-WISPR)
i greu, gyda MaryTTS, llais naturiol gogleddol gwrywaidd. Mae modd arbrofi gyda'r
llais ar wefan y Porth Technolegau Iaith (http:https://techiaith.cymru/lleferydd/testun-i-leferydd/)
a'i defnyddio o fewn wasanaeth API ar-lein
(https://github.com/PorthTechnolegauIaith/marytts/tree/master/doc/)

Os hoffwch chi ei defnyddio'n lleol ar eich cyfrifiadur eich hunain, yna defnyddiwch
ar gyfrifiadur Linux neu Mac OS X:

`$ git clone https://github.com/techiaith/docker-marytts.git`

Ac yna:

`$ cd docker-marytts`

`$ make github`

`$ make `

`$ make runtime`

Bydd hyn yn cychwyn amgylchedd Docker lle mae modd llwytho'r llais i lawr a dechrau
gweinydd lleferydd MaryTTS:

`root@9dcf4f9f904b:~# voice-download.sh wispr`

`root@9dcf4f9f904b:~# ./target/marytts-5.2/bin/marytts-server `

Mae modd dod allan o'r amgylchedd gan adael y gweinydd i redeg drwy bwyso **CTRL-P**
ac yna **CTRL-Q**

Yna agorwch borwr ac ewch i `http:https://localhost:59125` i arbrofi rhagor.

<hr/>

## Datblygu llais testun-i-lefrydd eich hunain

Mae modd defnyddio'r adnoddau MaryTTS hyn i greu lleisiau synthetig Cymraeg eich hunain.
<br/>

Dyma engreifftiau o'r leisiau o'r rhai aelodau Uned Technolegau Iaith sydd wedi'i
trosi i lais synthetig gyda'r adnoddau hyn:

- [Gwryw](http:https://techiaith.cymru/wp-content/uploads/2017/03/MaryTTS-CY-1.wav)
## Lleisiau testun-i-leferydd o'r Porth Technolegau Iaith

- [Benyw](http:https://techiaith.cymru/wp-content/uploads/2017/03/MaryTTS-CY-2.wav)
Mae Uned Technolegau Iaith, Prifysgol Bangor eisoes wedi creu lleisiau destun-i-leferydd Cymraeg sydd wedi eu creu gyda ddau set data agored:

Bydd angen defnyddio'r meddalwedd i recordio unigolyn yn darllen sgript recordio
arbennig. Mae modd i chi hefyd cynhyrchu sgript recordio eich hunain er mwyn
cynhyrchu lleisiau gorau ar gyfer parthau penodol.
1 - [Corpws WISPR](https://git.techiaith.bangor.ac.uk/Data-Porth-Technolegau-Iaith/Corpws-WISPR)

2 - [Corpws Talentau Llais]()

### Cychwyn arni
O ganlyniad, mae lleisiau gwrywaidd a benywaidd gydag acenion gogleddol ar gael sy'n swnion mor naturiol â phosib.

Er mwyn cychwyn arni i cynhyrchu lleisiau eich hunain, llwythwch yr adnoddau i
lawr drwy ddefnyddio git:
Os hoffwch chi eu gosod a'u rhedeg ar weinydd neu gyfrifiadur eich hunain, yna defnyddiwch y gorchmynion canlynol:

`$ git clone https://github.com/techiaith/docker-marytts.git`

Ac yna:

`$ cd docker-marytts`

`$ make github`

`$ make mysql`

Mae'r project yn ogystal yn defnyddio'r HTK i gynhyrchu modelau acwstig. Mae rhaid
i chi gofrestru ar wefan http:https://htk.eng.cam.ac.uk, er mwyn derbyn enw defnyddiwr a
chyfrinair ar gyfer caniatáu llwytho cod ffynhonnell i lawr. Wedi i chi cael eich
manylion, mae modd llwytho'r HTK i lawr fel hyn:

`$ wget --user <eich enw defnyddiwr HTK> --ask-password http:https://htk.eng.cam.ac.uk/ftp/software/HTK-3.4.1.tar.gz`

`$ wget --user <eich enw defnyddiwr HTK> --ask-password http:https://htk.eng.cam.ac.uk/ftp/software/HTK-samples-3.4.1.tar.gz`


Bydd yn gofyn am eich cyfrinair yn y man.

Bydd ddwy ffeil, `HTK-3.4.1.tar.gz` a `HTK-samples-3.4.1.tar.gz` yn bodoli o fewn
y cyfeiriadur `docker-marytts`
`$ make `

Defnyddiwch y ddau orchymyn canlynol er mwyn adeiladu'r amgylchedd Mary TTS ar
eich cyfrifiadur:
`$ cd server`

`$ make`

`$ make run`

Bydd yr amgylchedd Docker yn cychwyn.

Mae'r camau nesaf yn dibynol ar beth hoffwch chi ei gyflawni:

* [paratoi sgript recordio o ffynhonnell testun penodol](#creusgript)
<br/>
* [recordio unigolyn i gynhyrchu llais testun-i-leferydd newydd](#recordiosgript)
<br/>
* [gosod a rhedeg eich llais newydd](#defnyddiollais)


#### <a name="creusgript"></a> Paratoi Sgriptiau Recordio

Bydd angen gorff swmpus o destun er mwyn cael ddigon o ddewis ar gyfer brawddegau
addas ar gyfer sgript recordio. Y ffynonellau bosib yw:

##### Wicipedia Cymraeg fel ffynhonnell testun

Defnyddiwch y gorchmynion canlynol:

`$ cd /home/marytts/texts/wici`

`$ create_database_docker.sh wkdb.conf`

`$ wkdb_collect.sh wkdb.conf`


##### Ffynhonnell testun amgen...

Os oes gennych chi gasgliad o destunau amgen a glan eisoes yna :

`$ cd /home/marytts/texts/alt`

`$ create_database_docker.sh wkdb.conf`

Mae modd estyn enghraifft o destun o ffynhonnell amgen, fel Cofnod y Cynulliad,
o'r Porth Technolegau Iaith drwy defnyddio:

`$ getcorpustext_cy.sh -n CofnodYCynulliad`

Bydd angen mewnforio'r pwy bynnag testun i amgylchedd MaryTTS trwy ddefnyddio:

`$ alt-cleantext-import.sh wkdb.conf alt-cleantext/CofnodYCynulliad/CofnodYCynulliad.cy`


##### Cynhyrchu sgriptiau recordio

Ar ôl casglu testunau, ewch i'ch cyfeiriadur texts/wici neu texts/alt ac yna
defnyddiwch:

`$ wkdb_featuremaker.sh wkdb.conf`

`$ wkdb_database_selector.sh wkdb.conf`

`$ selectedtext-dbexport.sh wkdb.conf`

Mae hyn yn cynhyrchu sgript recordio o'r testunau lle mae'r wybodaeth am ynganu'r
Gymraeg wedi'i ddefnyddio i sicrhau bod ddigon o enghreifftiau o bob ffonem ac
elfen sain eraill y Gymraeg wedi eu cynnwys.

Rydych yn barod nawr i recordio eich llais er mwyn creu system testun-i-leferydd
eich hunain fel y disgrifir yn y camau nesaf.

<br/>

#### <a name="recordiosgript"></a> Recordio a chynhyrchu llais testun-i-leferydd newydd

##### Recordio

Mae sgript eisoes, neu'r un rydych wedi cynhyrchu gyda sgriptiau docker-marytts
wedi ei chadw yn:

https://github.com/techiaith/docker-marytts/blob/master/voice-builder/recorder/Prompts.py

Mae rhaid recordio'r promtiau hyn **tu allan i'r amgylchedd Docker**.

Felly o fewn eich amgylchedd linell gorchymyn arferol eich cyfrifiadur, ewch i
cyfeiriadur `docker-marytts/voice-builder/recorder`

`$ cd voice-builder/recorder`

Fe welwch ffeil 'Prompts.py' yn ogystal a ddau ffeil cod Python. Er mwyn sicrhau
bod holl cydrannau Python yn bodoli ar eich cyfrifiadur, defnyddiwch:

`$ sudo apt install audacity portaudio19-dev python3-pip`

`$ sudo pip3 install -r requirements.txt`

Ac yna,

`$ python3 Record-Prompts-GUI.py`

Bydd rhaglen fach syml ymddangos ar gyfer recordio pob prompt yn y sgript.


##### Cynhyrchu llais testun-i-leferydd

Ar ôl cwblhau'r recordio, defnyddiwch y gorchymyn canlynol i ddynodi enw i'ch
llais newydd. Yma rydyn yn dewis 'macsen'

`$ ./init-voice-build.sh macsen`

Mae gweddill y camau angen mynd yn ôl i amgylchedd MaryTTS o fewn Docker.

Felly:

`$ docker exec -it marytts bash`

`$ cd /home/marytts/voice-builder/macsen`

A chychwyn y rhaglen glanhau a gwella ansawdd eich recordiadau

`$ audio_converter_GUI.sh`

Dewisiwch y ffolder:

- `/home/marytts/voice-builder/macsen/recordings`

ar gyfer 'Input Wave directory', ac yna:

- `/home/marytts/voice-builder/macsen/wav`

ar gyfer 'Output Wave directory (*mae'n bosib creu'r ffolder 'wav' o fewn y GUI
os nad yw'n bodoli eisoes*)

Ar ol i'r broses llnau a gwella'r recordiadau cwblhau, defnyddiwch yr orchymun
canlynol:

`$ voice-import-cy.sh`

Bydd hyn yn achosi i raglen GUI newydd ymddangos, gyda chyfres o gamau sydd eu
hangen ar gyfer creu testun i leferydd 'unit selection'.

Ticiwch bob un yn eu tro, gan droi pob un rhes yn wyrdd.

Caewch y rhaglen ar ôl cwblhau 'Compile voice', a bydd ffeiliau newydd sy'n
pecynnu'r llais newydd ar gael yn

`$ /home/marytts/voice-builder/macsen/mary/voice-macsen/target`

Yn benodol:

- `voice-macsen-5.2-component.xml`
- `voice-macsen-5.2.zip`



### <a name="defnyddiollais"></a> Defnyddio llais newydd

Os oes gennych chi'r ffeiliau `voice-macsen-5.2-component.xml` a
`voice-macsen-5.2.zip` ar gyfer llais newydd yna defnyddiwch y gorchymyn canlynol
er mwyn eu hychwanegu i'r weinydd MaryTTS o fewn eich amgylchedd docker-marytts:

`$ voice-install-cy.sh macsen`

Defnyddiwch y gorchymyn canlynol i gychwyn gweinydd MaryTTS a'ch llais newydd:

`$ cd /home/marytts`
Bydd hyn yn cychwyn gweinydd testun-i-leferydd gyda'r llais Cymraeg (wispr-cy-male-unitselection-general) yn barod i'w ddefnyddio.

`$ ./target/marytts-5.2/bin/marytts-server`
Agorwch borwr ac ewch i `http:https://localhost:52010` i'w glywed yn ynganu eich testunau.

Agorwch borwr ac ewch i `http:https://localhost:59125` i brofi a mwynhau eich llais
synthetig Cymraeg newydd.

1 change: 1 addition & 0 deletions server/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
log
13 changes: 5 additions & 8 deletions server/Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
ls -default: build

MARYTTS_CY_VERSION := 20.10
MARYTTS_CY_VERSION := 21.03
VOICES_DIR := ${PWD}/../voices

build:
Expand All @@ -9,16 +9,16 @@ build:
cp installed-voices.txt ${VOICES_DIR}/; \
fi
docker build --rm -t techiaith/marytts-server:${MARYTTS_CY_VERSION} \
--build-arg MARYTTS_CY_VERSION=${MARYTTS_CY_VERSION} \
.
--build-arg MARYTTS_CY_VERSION=${MARYTTS_CY_VERSION} \
.


run:
docker run --name marytts-server-${MARYTTS_CY_VERSION} --restart=always \
-d -p 52010:59125 \
-d -p 52010:59125 \
-p 5301:8008 \
-v ${PWD}/log:/var/log/marytts-server \
-v ${PWD}/../voices/:/voices \
-v ${VOICES_DIR}/:/voices \
techiaith/marytts-server:${MARYTTS_CY_VERSION}


Expand All @@ -31,6 +31,3 @@ stop:
clean:
docker rmi techiaith/marytts-server:${MARYTTS_CY_VERSION}




2 changes: 1 addition & 1 deletion server/installed-voices.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
wispr
wispr
Loading

0 comments on commit 81ad56a

Please sign in to comment.