Tekstimuotoisen keskustelulitteraatin kohdistaminen äänitiedostoon

Alla olevan ohjeen ja sen ohessa mainitun Praat-skriptin avulla voidaan puoliautomaattisesti kohdistaa äänitiedostoon litteroidun keskustelun puheenvuorot ja/tai yksittäiset puhunnokset.

Tässä kuvattua puoliautomaattista kohdistusmenetelmää kannattaa käyttää, mikäli aineiston sisältämälle kielelle ei ole käytettävissä automaattista kohdistinta tai puheentunnistinta, tai mikäli on huomattu, ettei automaattisen kohdistuksen tarkkuus ole riittävä. Kohdistusnopeus puoliautomaattisella työkalulla on arviolta noin 3-10-kertaisesti alkuperäisen äänitteen kesto. Nopeus kuitenkin vaihtelee huomattavasti aineiston hälyisyydestä, kohdistettavien pätkien määrästä ja tarkkuudesta sekä päällekkäispuhunnan määrästä riippuen.

Hitain vaihtoehto on kohdistaa litteraatti kokonaan käsin. Jollakin puheen monikerroksiseen annotointiin soveltuvalla ohjelmalla (esim. Elan, Praat) luodaan aluksi annotaatiokerrokset kullekin puhujalle. Sitten merkitään äänitiedoston perusteella kunkin puhujan puhunnosten alku- ja loppurajat käsin, yksi puhunnos kerrallaan. Jokaisen rajatun jakson nimikkeeksi kopioidaan vastaava kohta tekstitiedostosta, jota voi pitää avoinna toisessa ikkunassa.

Näin syntyneen monikerroksisen keskusteluannotaation voi myös siirtää (takaisin) lukukelpoiseen tekstimuotoon esimerkiksi Praat-ohjelmalla (katso ohjeet) tai Elanilla (esim. komento Export As:Traditional Transcript Text… tai Interlinear Text…).

Doc-, rtf- tai tekstimuotoisen keskustelun litteraatin kohdistaminen äänitiedostoon Praat-ohjelmalla

Skripti ehdottaa valinnan mukaan joko jokaiselle kokonaiselle puheenvuoroille tai sen kullekin osalle alustavaa rajausta äänen intensiteetin (ts. äänen voimakkuuden perusteella oletettujen taukojen) sekä vastaavan tekstin merkkimäärän perusteella. Käyttäjälle näytetään kyseinen puhunnos/vuoro ja hän voi korjata rajauksen, minkä jälkeen jatketaan seuraavaan puhunnokseen/vuoroon. Skripti sijoittaa puhunnokset automaattisesti kunkin puhujan omaan annotaatiokerrokseen tekstitiedoston rivin alussa mainitun puhujakoodin mukaisesti.

Huom. Äänitiedostoa ei saa kohdistuksen jälkeen enää pilkkoa tai ”siivota”, jotta kohdistus säilyy! Äänitiedoston tulee olla WAV- tai AIFF-muotoinen, jotta sen voi avata Praat-ohjelmalla. Äänitiedoston voi tarvittaessa muuntaa toiseen muotoon esim. Audacity-ohjelmalla. Alkuperäiset äänitteet kannattaa tehdä suoraan WAV- tai AIFF-muotoon, sillä häviöllisesti pakatut formaatit kuten MP3 poistavat äänitteestä mahdollisesti tärkeää informaatiota ja voimakas pakkaus saattaa heikentää myös äänitteen kuulonvaraista laatua.

1. Litteraatin muuntaminen sopivaan tiedostomuotoon

Jos litteraatti on tehty esim. MS Word-ohjelmalla ja se on RTF-muodossa (Rich Text Format) tai Word-muodossa (.doc, .docx), on tiedosto ensin muunnettava Unicode-muotoiseksi raakatekstiksi (plain text, UTF-8), katso ohjeet.

Huom: Tallenna tiedosto samannimisenä kuin sitä vastaava äänitiedosto, mutta vaihda tekstitiedoston päätteeksi .txt. Näin alkuperäinen litteraatti, äänitiedosto ja niistä kohdistettu TextGrid-tiedosto on helppo pitää yhdessä eikä tule sekaannuksia.

Tarkista lopuksi, ettei tiedostossa ole tyhjiä rivejä.

Tekstitiedoston sisällöstä ja koodauksesta:

Mikäli tiedoston alussa on litteraattia koskevaa taustatietoa, sen voi jättää paikalleen, mikäli taustaosion keskellä ei ole yhtään tyhjää riviä ja taustaosiota ja varsinaista litteraattia erottaa yksi tyhjä rivi. (Tällöin taustaosio erotetaan kohdistusvaiheessa automaattisesti ja se tallentuu erilliseen info-tiedostoon.) Taustaosion voi halutessaan myös poistaa etukäteen UTF-8-muotoon tallennetusta litteraattitiedostosta.

Litteraattiosiossa:

Kunkin rivin alussa on ko. puhujan tunnus tai koodi, jota seuraa kaksoispiste. Jos puhujan tunnus puuttuu, oletetaan että puhuja on sama kuin edellisellä rivillä esiintynyt.
Pisteen ja pilkun kohdalle kohdistusskripti ehdottaa lyhyttä taukoa. Kaari-, aalto- ja hakasulkeissa esiintyvä teksti käsitellään tällä hetkellä kuten mikä tahansa muu teksti. Jos puheenvuoron alussa on useampi kuin yksi välilyönti tai sarkainmerkki, oletetaan, että tämä vuoro on puhuttu edellisen puhujan vuoron päälle. (Kohdistusskripti kuitenkin arvioi tällaisen päällekkäispuhunnan alkuajan hyvin karkeasti merkkimäärän perusteella.)

2. Asenna tarvittaessa Praat-ohjelma

Praat-ohjelman uusimman version voit tarvittaessa hakea ja asentaa itse ilman ylläpitäjän oikeuksia osoitteesta http://www.praat.org.

3. Lataa omalle koneellesi kohdistusskripti:

align_conversation_transcript_with_sound.praat
(Klikkaa linkkiä hiiren oikealla napilla ja valitse Save target as… tai Save link as…)

Skripti pitää tallentaa samaan hakemistoon litteraattitiedoston kanssa, jolloin skripti löytää oikean litteraatin automaattisesti Praatilla avaamasi äänitiedoston nimen perusteella. Kohdistettu tiedosto (Praatin TextGrid-muodossa) tallentuu myös samaan hakemistoon, jossa skriptitiedosto sijaitsee.

4. Avaa Praat-ohjelma.

5. Avaa Praat-ohjelmalla äsken lataamasi kohdistusskripti.

Open: Read from file… Skripti aukeaa uuteen skripti-ikkunaan.

6. Avaa äänitiedosto Praatilla

Avaa se äsken luomaasi tekstitiedostoa vastaava äänitiedosto, johon haluat litteraatin kohdistaa. Äänitiedosto on avattava Praatissa LongSound-tyyppisenä.

Valitse Objects-ikkunan Open-valikosta komento Open long sound file…

7. Kun LongSound-ääniobjekti on valittuna Praatin objekti-ikkunassa, aloita kohdistus käynnistämällä skripti.

Siirry skripti-ikkunaan ja valitse Run:Run.

Skripti etsii LongSound-objektin nimen perusteella vastaavaa tekstitiedostoa samasta hakemistosta, jossa skripti sijaitsee.

Skripti tallentaa ensin mahdolliset litteraatin alkuosassa olevat kuvailutiedot yms. informaation toiseen tekstitiedostoon, jonka nimeksi tulee litteraatinnimi.info.

Sen jälkeen skripti luo LongSound-objektille uuden TextGrid-annotaatio-objektin ja avaa sen editori-ikkunaan.

8. Skripti etsii litteraattiriviltä seuraavan, mahdollisesti taukojen erottaman tekstipätkän ja ehdottaa sille rajoja kyseisen puhujan annotaatiokerroksessa.

Tarvittaessa luodaan uusi annotaatiokerros, jos litteraatissa esiintyy uusi puhuja, jolle ei ole vielä rajattu yhtään puhunnosta. Skripti pysähtyy kunkin puhunnoksen alustavan kohdistuksen jälkeen odottamaan käyttäjän tekemää tarkastusta.

Samalla litteraattirivillä oleva teksti jaetaan ehdotettuihin puhunnoksiin pilkkujen, pisteiden, sarkainmerkkien tai vähintään 3 toistuvan välilyönnin kohdalta.

Skripti käyttää alimmaisena olevaa annotaatiokerrosta nimeltä ”original” alkuperäisten litteraattirivien tallentamiseen. Niiden avulla voidaan myös päätellä, mihin kohtaan litteraatti edellisellä kerralla jäi ja jatkaa aiemmin talletettua työtä.

Huom: Tällä hetkellä skripti ei pysty jatkamaan työtä keskeltä litteraattiriviä, jos rivi on jaettu useisiin puhunnoksiin! Keskeneräisen rivin joutuu joko kohdistamaan käsin loppuun ennen kuin automaattisia ehdotuksia voi jatkaa, tai sitten on poistettava aloitetun keskeneräisen rivin rajaukset käsin TextGridistä ja tallennettava tämä versio ennen skriptin ajamista, jolloin skripti ehdottaa uudelleen puhunnoksia ko. rivin alusta.

Kuuntele ainakin lyhyitä äänipätkiä puhunnoksen alun ja lopun kohdalta ja varmista, että alku- ja loppurajat ovat suunnilleen oikeissa kohdissa.

Jos huomaat, ettei kahden peräkkäisen puhunnoksen välillä oikeasti olekaan varsinaista taukoa vaan puhuja esimerkiksi pidättää jotakin äännettä tai puhuu yhtäjaksoisesti, älä jätä puhunnosten väliin taukoa vaan poista ylimääräinen raja. Näin tulee nopealla tavalla kirjatuksi muistiin, ettei taukoa ollut, vaikka rajaus sinänsä olisikin vasta alustava.

Tarkempaa tietoa rajausperiaatteesta

Rajausehdotus on hyvin karkea. Skripti tekee äänestä intensiteettianalyysin. Jos tällä perusteella saadun rajausehdotuksen kesto poikkeaa merkittävästi kyseisen puhunnoksen merkkimäärän perusteella ennustetusta kestosta, sijoitetaan puhunnoksen loppuraja jälkimmäisellä perusteella. Skripti pyrkii siis välttämään ylilyhyitä tai ylipitkiä puhunnoksia.

Normaalitapauksessa skripti ehdottaa puhunnokselle alkuaikaa hieman edeltävän, joko saman tai toisen puhujan tuottaman puhunnoksen jälkeen. Jos litteraatin perusteella on syytä epäillä päällekkäispuhuntaa (eli jos puheenvuoron alussa on useita välilyöntejä ja/tai sarkainmerkkejä), skripti ehdottaa puhunnoksen rajausta edellisen puhujan puheenvuoron kohdalle vähän sen alkamisajan jälkeen (mutta tietenkin nykyisen puhujan annotaatiokerrokseen).

9. Paina Continue, jolloin skripti ehdottaa järjestyksessä seuraavan puhunnoksen rajausta (ks. kohta 8).

Katso myös ohjeet aineiston teknisestä formaatista.

Huom: Tällä sivulla kuvattu Praat-skripti on testikäytössä eikä välttämättä toimi kaikilta osin oikein.

Hae Kielipankki-portaalista:
Kuukauden tutkija: Lari Vainio

 

Yhteystiedot

Kielipankin tekninen ylläpito:
kielipankki (ät) csc.fi
p. 09 4572001

Aineistoihin ja muuhun sisältöön liittyvät asiat:
fin-clarin (ät) helsinki.fi
p. 029 4140599 / 029 4129317