14th Speech in Noise Workshop, 12-13 January 2023, Split, Croatia 14th Speech in Noise Workshop, 12-13 January 2023, Split, Croatia

P18Session 2 (Friday 13 January 2023, 09:00-11:00)
VTServer: A Python server for online signal processing

Etienne Gaudrain
Lyon Neuroscience Research Center, CNRS UMR5292, Inserm U1028, UCBL, UJM, Lyon, France
Department of Otorhinolaryngology/Head and Neck Surgery, University of Groningen, University Medical Center Groningen, Groningen, Netherlands

While specialized equipment in laboratories allows researcher in auditory sciences to deliver highly controlled auditory stimuli, this environment is not always the most suitable place to run an experiment. For instance, some experiments sometimes benefit from the participant being home, in their natural environment; or it could simply be that the participants are located too far from the lab to be comfortable traveling there; or that being present in the lab could present a health risk for the participant (like during the COVID pandemic). For all these cases, and where precisely calibrated audio equipment is not required, online testing has offered a viable solution that has been soaring in the recent years.

To be highly deliverable, online experiments rely on the Web browser runtimes instead of a dedicated software like Matlab or ePrime. Many solutions have been developed to facilitate the construction and distribution of online experiments. These online experiment development frameworks harness the power of Web browsers to produce visually complex and appealing graphical interfaces. Playing audio in various formats is also not an issue anymore since support for HTML5 features has become ubiquitous. However, the live generation of stimuli remains a challenge. Javascript libraries for signal processing are still from the degree of maturity of Matlab or Python's Scipy, and browser support for the Web Audio API is still relatively patchy. Finally, some researchers may be reluctant to make their stimulus generation code available, which is necessary if the code is running on the client side.

As a remedy to this situation, stimuli can be generated online using a proxy server that interfaces with signal processing libraries. The VTServer (https://github.com/egaudrain/VTServer) is a Python server that receives an instruction object encoded in JSON, handles processing using built-in or custom modules, handles caching for efficiency, and returns the generated sound. The modular structure of VTServer allows researchers to create their own module easily.

Examples of experiments will be presented, and comparisons of computing efficacy with native Matlab implementations will be reported.

Last modified 2023-01-06 23:41:06