Git Product home page Git Product logo

phonfieldwork's Introduction

phonfieldwork

Project Status: Active - The project has reached a stable, usable state and is being actively developed. CRAN version R build status Coverage Status DOI

phonfieldwork is a package for phonetic fieldwork research and experiments. This package makes it easier to:

  • create a html/pptx presentation from stimuli-translation list,
  • rename soundfiles according to the list of stimuli,
  • concatenate multiple soundfiles and create a Praat TextGrid which interval labels are the original names of the sound
  • extract sounds according to annotation
  • extract annotation from multiple linguistic formats (Praat .TextGrid, ELAN .eaf, EXMARaLDA .exb, Audacity .txt and subtitles .srt)
  • visualise oscilograms, spectrograms and annotations
  • create an html viewer like this, ethical problems of this kind of viewer in linguistic research are covered in the vignette vignette("ethical_research_with_phonfieldwork").

For more details see tutorial.

The main goal of the phonfieldwork package is to make the full research workflow, from data collection to data extraction and data representation, easier for people that are not familiar with programming. However, most of the phonfieldwork functionality can be found in other software and packages:

  • stimuli presentation creation could be done with any programming language and probably without them
  • automatic file renaming and automatic merging could be done with any programming language
  • Praat .TextGrid manipulation is possible with Praat, R packages rPraat and textgRid, Python package 'pympi'
  • ELAN .eaf manipulation is possible with ELAN, R package FRelan and Python package pympi
  • import and export between Praat .TextGrid, ELAN .eaf, and 'EXMARaLDA .exb is possible with R package act
  • cutting sounds according to annotation is possible with Praat and the R packagetuneR
  • spectrogram visualisation is possible with multiple R packages signal, tuneR, seewave, phonTools, monitor, warbleR, soundgen and many others

Installation

Install from CRAN:

install.packages("phonfieldwork")

Get the development version from GitHub:

install.packages("remotes")
remotes::install_github("ropensci/phonfieldwork")

Load the library:

library(phonfieldwork)

In order to work with some rmarkdown functions you will need to install pandoc, see vignette("pandoc") for the details.

Cite the package

You can get the latest information about how to cite the package using the citation() function:

citation("phonfieldwork")
>
> To cite package ‘phonfieldwork’ in publications use:
>   
>   Moroz G (2020). _Phonetic fieldwork and experiments with phonfieldwork package_.
> <https://CRAN.R-project.org/package=phonfieldwork>.
> 
> A BibTeX entry for LaTeX users is
> 
> @Manual{,
>   title = {Phonetic fieldwork and experiments with phonfieldwork package},
>   author = {George Moroz},
>   year = {2020},
>   url = {https://CRAN.R-project.org/package=phonfieldwork},
> }

To do:

  • export to ELAN and EXMARALDA files
  • use ELAN and EXMARALDA files in the whole pipeline described in docs
  • use the same pipeline with video (for Sign Languages)
  • make TECkit to df and back

ropensci_footer

phonfieldwork's People

Contributors

agricolamz avatar sverhees avatar vbunt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

phonfieldwork's Issues

`create_viewer()` with part of images or sounds

Would it be possible to create a report where some sounds have images, but others don't? (Or even one where it's just sounds and no pictures, or just pictures and no sounds?)

Thanks to Jonathan Keane

encoding autodetection

In textgRid author used the readr package in order to make encoding autodetection. It is better to use uchardet which has less dependencies.

read Short text file TextGrids

thx to Sasha Shiryaev for this problem

It is possible to create another type of TextGrid files with the command Save as short text file in Praat. It would be nice to make phonfieldwork to read them. Here is an example:

File type = "ooTextFile"
Object class = "TextGrid"

0
0.6526757369614512
<exists>
3
"IntervalTier"
"intervals"
0
0.6526757369614512
5
0
0.012465825768947203
""
0.012465825768947203
0.247819135106803
"t"
0.247819135106803
0.39552362579469874
"e"
0.39552362579469874
0.5115771541923311
"s"
0.5115771541923311
0.6526757369614512
"t"
"IntervalTier"
"empty_intervals"
0
0.6526757369614512
5
0
0.012465825768947203
""
0.012465825768947203
0.247819135106803
""
0.247819135106803
0.39552362579469874
""
0.39552362579469874
0.5115771541923311
""
0.5115771541923311
0.6526757369614512
""
"TextTier"
"points"
0
0.6526757369614512
4
0.012465825768947203
"t"
0.247819135106803
"e"
0.39552362579469874
"s"
0.5115771541923311
"t"

Creating presentations

Could you please allow user to center stimuli on the presentation slide in the create_presentation() function? I like this very nice and quick way of creating a linguistic survey, but words don't look very good in the corner.

Fix pkgdown reference index

👋 @agricolamz!

The pkgdown build for your package is currently failing because some of the documentation topics are missing from the pkgdown config file. Could you please fix?

> pkgdown::check_pkgdown()
Error in `check_missing_topics()`:
! All topics must be included in reference indexMissing topics: add_leading_symbols, create_image_look_up, create_sound_play, create_viewer, df_to_eaf, df_to_exb, remove_textgrid_tier

Extract sound by dataframe

For now it is possible only cut sound by tier in the textgrid. It would be nice to make possible to cut it using some part of textgrid's annotation.

improve you viewer

I'd like to make a viewer:

  • searchable and sortable table with all contents
  • select anything from a list and it loads
    • precomputed spectrogram (or any other picture)
    • sound player (play, stop, decrease rate)
  • some common things for the website: title, citation info block, etc.
  • password protection?
  • it is important not to load everything on page call

R tools: htmlwidgets and crosstalk
JS tools: DT, ...?

Add an ability to draw just a fragment with draw_sound()

For now draw_sound() is drawing the whole file that could be terrible, when you have a long file. It is could be nice to add a possibility to draw only fragment of the sound and TextGrid in order to see the result from R.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.