annotate docs/WAC2016/WAC2016.tex @ 22:1f375b7d75fd tip

updated warning for breaks during test
author Giulio Moro <giuliomoro@yahoo.it>
date Fri, 13 May 2016 19:01:08 +0100
parents d2eb0e6ccaaf
children
rev   line source
giuliomoro@0 1 \documentclass{sig-alternate}
giuliomoro@0 2 \usepackage{hyperref} % make links (like references, links to Sections, ...) clickable
giuliomoro@0 3 \usepackage{enumitem} % tighten itemize etc by appending '[noitemsep,nolistsep]'
giuliomoro@0 4 \usepackage{cleveref}
giuliomoro@0 5
giuliomoro@0 6 \graphicspath{{img/}} % put the images in this folder
giuliomoro@0 7
giuliomoro@0 8 \begin{document}
giuliomoro@0 9
giuliomoro@0 10 % Copyright
giuliomoro@0 11 \setcopyright{waclicense}
giuliomoro@0 12
giuliomoro@0 13 \conferenceinfo{Web Audio Conference WAC-2016,}{April 4--6, 2016, Atlanta, USA.}
giuliomoro@0 14 \CopyrightYear{2016} % Allows default copyright year (20XX) to be over-ridden - IF NEED BE.
giuliomoro@0 15
giuliomoro@0 16 \newcommand*\rot{\rotatebox{90}}
giuliomoro@0 17
giuliomoro@0 18
giuliomoro@0 19 % Make clickable footnote (Brecht)
giuliomoro@0 20 \newcommand{\hyperfootnote}[1][]{\def\ArgI{{#1}}\hyperfootnoteRelay}
giuliomoro@0 21 % relay to new command to make extra optional command possible
giuliomoro@0 22 \newcommand\hyperfootnoteRelay[2][]{\href{#1#2}{\ArgI}\footnote{\href{#1#2}{#2}}}
giuliomoro@0 23 % the first optional argument is now in \ArgI, the second is in #1
giuliomoro@0 24
giuliomoro@0 25 % Takes at most 3 parameters (see http://www.tex.ac.uk/FAQ-twooptarg.html for info on multiple optional parameters)
giuliomoro@0 26 % If first parameter isn't given, it's value is '' (empty string in text before footnote reference)
giuliomoro@0 27 % If second parameter isn't given, it's value is '' (string before visible URL, e.g. 'http://')
giuliomoro@0 28 % Makes a clickable footnote (alternatively: \url{}) with optional reference in the text as well
giuliomoro@0 29 % Use 1: \hyperfootnote{www.mywebsite.com}: creates a footnote consisting of a clickable URL
giuliomoro@0 30 % Use 2: \hyperfootnote[My website]{www.mywebsite.com}: creates a clickable piece of text in the text ('My website') plus a footnote consisting of a clickable URL
giuliomoro@0 31 % Note: requires the hyperref package.
giuliomoro@0 32 % Note: using xspace package to add/absorb spaces when necessary (e.g. to avoid a space between the footnote number and a punctuation mark)
giuliomoro@0 33
giuliomoro@0 34 %% DOI
giuliomoro@0 35 %\doi{10.475/123_4}
giuliomoro@0 36 %
giuliomoro@0 37 %% ISBN
giuliomoro@0 38 %\isbn{123-4567-24-567/08/06}
giuliomoro@0 39 %
giuliomoro@0 40 %%Conference
giuliomoro@0 41 %\conferenceinfo{PLDI '13}{June 16--19, 2013, Seattle, WA, USA}
giuliomoro@0 42 %
giuliomoro@0 43 %\acmPrice{\$15.00}
giuliomoro@0 44
giuliomoro@0 45 %
giuliomoro@0 46 % --- Author Metadata here ---
giuliomoro@0 47 \conferenceinfo{Web Audio Conference WAC-2016,}{April 4--6, 2016, Atlanta, USA}
giuliomoro@0 48 \CopyrightYear{2016} % Allows default copyright year (20XX) to be over-ridden - IF NEED BE.
giuliomoro@0 49 %\crdata{0-12345-67-8/90/01} % Allows default copyright data (0-89791-88-6/97/05) to be over-ridden - IF NEED BE.
giuliomoro@0 50 % --- End of Author Metadata ---
giuliomoro@0 51
giuliomoro@0 52 \title{Web Audio Evaluation Tool: A framework for subjective assessment of audio}
giuliomoro@0 53 %\subtitle{[Extended Abstract]
giuliomoro@0 54 %\titlenote{A full version of this paper is available as
giuliomoro@0 55 %\textit{Author's Guide to Preparing ACM SIG Proceedings Using
giuliomoro@0 56 %\LaTeX$2_\epsilon$\ and BibTeX} at
giuliomoro@0 57 %\texttt{www.acm.org/eaddress.htm}}}
giuliomoro@0 58 %
giuliomoro@0 59 % You need the command \numberofauthors to handle the 'placement
giuliomoro@0 60 % and alignment' of the authors beneath the title.
giuliomoro@0 61 %
giuliomoro@0 62 % For aesthetic reasons, we recommend 'three authors at a time'
giuliomoro@0 63 % i.e. three 'name/affiliation blocks' be placed beneath the title.
giuliomoro@0 64 %
giuliomoro@0 65 % NOTE: You are NOT restricted in how many 'rows' of
giuliomoro@0 66 % "name/affiliations" may appear. We just ask that you restrict
giuliomoro@0 67 % the number of 'columns' to three.
giuliomoro@0 68 %
giuliomoro@0 69 % Because of the available 'opening page real-estate'
giuliomoro@0 70 % we ask you to refrain from putting more than six authors
giuliomoro@0 71 % (two rows with three columns) beneath the article title.
giuliomoro@0 72 % More than six makes the first-page appear very cluttered indeed.
giuliomoro@0 73 %
giuliomoro@0 74 % Use the \alignauthor commands to handle the names
giuliomoro@0 75 % and affiliations for an 'aesthetic maximum' of six authors.
giuliomoro@0 76 % Add names, affiliations, addresses for
giuliomoro@0 77 % the seventh etc. author(s) as the argument for the
giuliomoro@0 78 % \additionalauthors command.
giuliomoro@0 79 % These 'additional authors' will be output/set for you
giuliomoro@0 80 % without further effort on your part as the last section in
giuliomoro@0 81 % the body of your article BEFORE References or any Appendices.
giuliomoro@0 82
giuliomoro@0 83 % FIVE authors instead of four, to leave space between first two authors.
giuliomoro@0 84 \numberofauthors{6} % in this sample file, there are a *total*
giuliomoro@0 85 % of EIGHT authors. SIX appear on the 'first-page' (for formatting
giuliomoro@0 86 % reasons) and the remaining two appear in the \additionalauthors section.
giuliomoro@0 87 %
giuliomoro@0 88 \author{
giuliomoro@0 89 % You can go ahead and credit any number of authors here,
giuliomoro@0 90 % e.g. one 'row of three' or two rows (consisting of one row of three
giuliomoro@0 91 % and a second row of one, two or three).
giuliomoro@0 92 %
giuliomoro@0 93 % The command \alignauthor (no curly braces needed) should
giuliomoro@0 94 % precede each author name, affiliation/snail-mail address and
giuliomoro@0 95 % e-mail address. Additionally, tag each line of
giuliomoro@0 96 % affiliation/address with \affaddr, and tag the
giuliomoro@0 97 % e-mail address with \email.
giuliomoro@0 98 %
giuliomoro@0 99 % 1st. author
giuliomoro@0 100 \alignauthor Nicholas Jillings\textsuperscript{2}\\
giuliomoro@0 101 \email{nicholas.jillings@mail.bcu.ac.uk}
giuliomoro@0 102 % 2nd. author
giuliomoro@0 103 \alignauthor
giuliomoro@0 104 \alignauthor Brecht De Man\textsuperscript{1}\\
giuliomoro@0 105 \email{b.deman@qmul.ac.uk}
giuliomoro@0 106 \and
giuliomoro@0 107 % use '\and' if you need 'another row' of author names
giuliomoro@0 108 % 3rd. author
giuliomoro@0 109 \alignauthor David Moffat\textsuperscript{1}\\
giuliomoro@0 110 \email{d.j.moffat@qmul.ac.uk}
giuliomoro@0 111 % 4th. author
giuliomoro@0 112 \alignauthor Joshua D. Reiss\textsuperscript{1}\\
giuliomoro@0 113 \email{joshua.reiss@qmul.ac.uk}
giuliomoro@0 114 \alignauthor Ryan Stables\textsuperscript{2}\\
giuliomoro@0 115 \email{ryan.stables@bcu.ac.uk}
giuliomoro@0 116 \and % new line for address
giuliomoro@0 117 \affaddr{Centre for Digital Music, School of Electronic Engineering and Computer Science\textsuperscript{1}}\\
giuliomoro@0 118 \affaddr{Queen Mary University of London}\\
giuliomoro@0 119 \affaddr{Mile End Road,}
giuliomoro@0 120 \affaddr{London E1 4NS}\\
giuliomoro@0 121 \affaddr{United Kingdom}\\
giuliomoro@0 122 \and
giuliomoro@0 123 \affaddr{Digital Media Technology Lab\textsuperscript{2}}\\
giuliomoro@0 124 \affaddr{Birmingham City University}\\
giuliomoro@0 125 \affaddr{Birmingham B4 7XG}\\
giuliomoro@0 126 \affaddr{United Kingdom}\\
giuliomoro@0 127 }
giuliomoro@0 128 %Centre for Digital Music, School of Electronic Engineering and Computer Science, Queen Mary University of London
giuliomoro@0 129 %% 5th. author
giuliomoro@0 130 %\alignauthor Sean Fogarty\\
giuliomoro@0 131 % \affaddr{NASA Ames Research Center}\\
giuliomoro@0 132 % \affaddr{Moffett Field}\\
giuliomoro@0 133 % \email{fogartys@amesres.org}
giuliomoro@0 134 %% 6th. author
giuliomoro@0 135 %\alignauthor Charles Palmer\\
giuliomoro@0 136 % \affaddr{Palmer Research Laboratories}\\
giuliomoro@0 137 % \affaddr{8600 Datapoint Drive}\\
giuliomoro@0 138 % \email{cpalmer@prl.com}
giuliomoro@0 139 %}
giuliomoro@0 140 % There's nothing stopping you putting the seventh, eighth, etc.
giuliomoro@0 141 % author on the opening page (as the 'third row') but we ask,
giuliomoro@0 142 % for aesthetic reasons that you place these 'additional authors'
giuliomoro@0 143 % in the \additional authors block, viz.
giuliomoro@0 144 %\additionalauthors{Additional authors: John Smith (The Th{\o}rv{\"a}ld Group,
giuliomoro@0 145 %email: {\texttt{jsmith@affiliation.org}}) and Julius P.~Kumquat
giuliomoro@0 146 %(The Kumquat Consortium, email: {\texttt{jpkumquat@consortium.net}}).}
giuliomoro@0 147 \date{1 October 2015}
giuliomoro@0 148 % Just remember to make sure that the TOTAL number of authors
giuliomoro@0 149 % is the number that will appear on the first page PLUS the
giuliomoro@0 150 % number that will appear in the \additionalauthors section.
giuliomoro@0 151
giuliomoro@0 152 \maketitle
giuliomoro@0 153 \begin{abstract}
giuliomoro@0 154 Perceptual listening tests are commonplace in audio research and a vital form of evaluation. % ?
giuliomoro@0 155 While a large number of tools exist to run such tests, many feature just one test type, are platform dependent, run on proprietary software, or require considerable configuration and programming. Using Web Audio, the Web Audio Evaluation Tool (WAET) addresses these concerns by having one toolbox which can be configured to run many different tests, perform it through a web browser and without needing proprietary software or computer programming knowledge. In this paper the role of the Web Audio API in giving WAET key functionalities are shown. The paper also highlights less common features, available to web based tools, such as easy remote testing environment and in-browser analytics.
giuliomoro@0 156 \end{abstract}
giuliomoro@0 157
giuliomoro@0 158
giuliomoro@0 159 \section{Introduction}
giuliomoro@0 160
giuliomoro@0 161 % Listening tests/perceptual audio evaluation: what are they, why are they important
giuliomoro@0 162 % As opposed to limited scope of WAC15 paper: also musical features, realism of sound effects / sound synthesis, performance of source separation and other algorithms...
giuliomoro@0 163 Perceptual evaluation of audio, using listening tests, is a powerful way to assess anything from audio codec quality over realism of sound synthesis to the performance of source separation, automated music production and other auditory evaluations.
giuliomoro@0 164 In less technical areas, the framework of a listening test can be used to measure emotional response to music or test cognitive abilities.
giuliomoro@0 165 % maybe some references? If there's space.
giuliomoro@0 166
giuliomoro@0 167 % check out http://link.springer.com/article/10.1007/s10055-015-0270-8 - only paper that cited WAC15 paper
giuliomoro@0 168
giuliomoro@0 169 % Why difficult? Challenges? What constitutes a good interface?
giuliomoro@0 170 % Technical, interfaces, user friendliness, reliability
giuliomoro@0 171 Several applications for performing perceptual listening tests currently exist, see~\Cref{tab:toolboxes}. Many rely on proprietary, third party software such as MATLAB and Max, making them less attractive for many. With the exception of the existing JavaScript-based toolboxes, remote deployment (web-based test hosting and result collection) is not possible.
giuliomoro@0 172
giuliomoro@0 173 HULTI-GEN~\cite{hultigen} is an example of a toolbox that presents the user with a large number of different test interfaces and customisation, without requiring knowledge of any programming language. The Web Audio Evaluation Toolbox (WAET), presented here, stands out for the same reasons but in addition does not require proprietary software or a specific platform. It also provides a wide range of interface and test types in one user friendly environment. Furthermore, any test based on the default test types can be configured in the browser as well. Note that the design of an effective listening test further poses many challenges unrelated to interface design, which are beyond the scope of this paper \cite{bech}.
giuliomoro@0 174
giuliomoro@0 175 % Why in the browser?
giuliomoro@0 176 The Web Audio API provides important features including sample level manipulation of audio streams \cite{schoeffler2015mushra} and synchronous and flexible playback. Operating in the browser allows leveraging the flexible JavaScript language and native support for web documents, such as the extensible markup language (XML) which is used for configuration and test result files. Using the web also reduces deployment requirements to a basic web server with extra functionality, such as test collection and automatic processing, using PHP. As recruiting participants can be very time-consuming, and as for some tests a large number of participants is needed, browser-based tests can enable participants in multiple locations to perform the test simultaneously \cite{schoeffler2015mushra}.
giuliomoro@0 177
giuliomoro@0 178 Both BeaqleJS \cite{beaqlejs} and \hyperfootnote[mushraJS][https://]{github.com/akaroice/mushraJS} also operate in the browser. However, BeaqleJS does not make use of the Web Audio API and therefore lacks arbitrary manipulation of audio stream samples, and neither offer an adequately wide choice of test designs for them to be useful to many researchers. %requires programming knowledge?...
giuliomoro@0 179
giuliomoro@0 180 % only browser-based?
giuliomoro@0 181 \begin{table*}[ht]
giuliomoro@0 182 \caption{Table with existing listening test platforms and their features}
giuliomoro@0 183 \small
giuliomoro@0 184 \begin{center}
giuliomoro@0 185 \begin{tabular}{|*{9}{l|}}
giuliomoro@0 186 \hline
giuliomoro@0 187 \textbf{Toolbox} & \rot{\textbf{APE}} & \rot{\textbf{BeaqleJS}} &\rot{\textbf{HULTI-GEN}} & \rot{\textbf{mushraJS}} & \rot{\textbf{MUSHRAM}} & \rot{\textbf{Scale}} & \rot{\textbf{WhisPER}} & \rot{\textbf{WAET}} \\ \hline
giuliomoro@0 188 \textbf{Reference} & \cite{ape} & \cite{beaqlejs} & \cite{hultigen} & & \cite{mushram} & \cite{scale} & \cite{whisper} & \cite{waet} \\ \hline
giuliomoro@0 189 \textbf{Language} & MATLAB & JS & MAX & JS & MATLAB & MATLAB & MATLAB & JS \\ \hline
giuliomoro@0 190 \textbf{Remote} & & (\checkmark) & & \checkmark & & & & \checkmark \\ \hline \hline
giuliomoro@0 191 MUSHRA (ITU-R BS. 1534) & & \checkmark & \checkmark & \checkmark & \checkmark & & & \checkmark \\ \hline
giuliomoro@0 192 APE & \checkmark & & & & & & & \checkmark \\ \hline
giuliomoro@0 193 Rank Scale & & & \checkmark & & & & & \checkmark \\ \hline
giuliomoro@0 194 Likert Scale & & & \checkmark & & & & \checkmark & \checkmark \\ \hline
giuliomoro@0 195 ABC/HR (ITU-R BS. 1116) & & & \checkmark & & & & & \checkmark \\ \hline
giuliomoro@0 196 -50 to 50 Bipolar with ref. & & & \checkmark & & & & & \checkmark \\ \hline
giuliomoro@0 197 Absolute Category Rating Scale & & & \checkmark & & & & & \checkmark \\ \hline
giuliomoro@0 198 Degradation Category Rating Scale & & & \checkmark & & & & & \checkmark \\ \hline
giuliomoro@0 199 Comparison Category Rating Scale & & & \checkmark & & & & \checkmark & \checkmark \\ \hline
giuliomoro@0 200 9 Point Hedonic Category Rating Scale & & & \checkmark & & & & \checkmark & \checkmark \\ \hline
giuliomoro@0 201 ITU-R 5 Continuous Impairment Scale & & & \checkmark & & & & & \checkmark \\ \hline
giuliomoro@0 202 Pairwise / AB Test & & & \checkmark & & & & & \checkmark \\ \hline
giuliomoro@0 203 Multi-attribute ratings & & & \checkmark & & & & & \checkmark \\ \hline
giuliomoro@0 204 ABX Test & & \checkmark & \checkmark & & & & & \checkmark \\ \hline
giuliomoro@0 205 Adaptive psychophysical methods & & & & & & & \checkmark & \\ \hline
giuliomoro@0 206 Repertory Grid Technique & & & & & & & \checkmark & \\ \hline
giuliomoro@0 207 Semantic Differential & & & & & & \checkmark & \checkmark &\checkmark \\ \hline
giuliomoro@0 208 n-Alternative Forced Choice & & & & & & \checkmark & & \\ \hline
giuliomoro@0 209 \end{tabular}
giuliomoro@0 210 \end{center}
giuliomoro@0 211 \vspace{-.5cm}
giuliomoro@0 212 \label{tab:toolboxes}
giuliomoro@0 213 \end{table*}
giuliomoro@0 214
giuliomoro@0 215 %
giuliomoro@0 216 %Selling points: remote tests, visualisaton, create your own test in the browser, many interfaces, few/no dependencies, flexibility
giuliomoro@0 217
giuliomoro@0 218 %[Talking about what we do in the various sections of this paper. Referring to \cite{waet}. ]
giuliomoro@0 219 To meet the need for a cross-platform, versatile and easy-to-use listening test tool, we previously developed the Web Audio Evaluation Tool \cite{waet} which was capable of running a listening test in the browser from an XML configuration file, and storing an XML file as well, with one particular interface. This has now expanded into a tool with which a wide range of listening test types can easily be constructed and set up remotely, without any need for manually altering code or configuration files, and allows visualisation of the collected results in the browser. In this paper, we discuss these different aspects and explore which future improvements would be possible.
giuliomoro@0 220
giuliomoro@0 221 \begin{figure}[tb]
giuliomoro@0 222 \centering
giuliomoro@0 223 \includegraphics[width=.5\textwidth]{interface.png}
giuliomoro@0 224 \caption{A simple example of a multi-stimulus, single attribute, single rating scale test with a reference and comment fields.}
giuliomoro@0 225 \label{fig:interface}
giuliomoro@0 226 \end{figure}
giuliomoro@0 227
giuliomoro@0 228 \begin{comment}
giuliomoro@0 229 % MEETING 8 OCTOBER
giuliomoro@0 230 \subsection{Meeting 8 October}
giuliomoro@0 231 \begin{itemize}
giuliomoro@0 232 \item Do we manipulate audio?\\
giuliomoro@0 233 \begin{itemize}
giuliomoro@0 234 \item Add loudness equalisation? (test\_create.html) Tag with gains.
giuliomoro@0 235 \item Add volume slider?
giuliomoro@0 236 \item Cross-fade (in interface node): default 0, number of seconds
giuliomoro@0 237 \item Also: we use the playback buffer to present metrics of which portion is listened to
giuliomoro@0 238 \end{itemize}
giuliomoro@0 239 \item Logging system information: whichever are possible (justify others)
giuliomoro@0 240 \item Input streams as audioelements
giuliomoro@0 241 \item Capture microphone to estimate loudness (especially Macbook)
giuliomoro@0 242 \item Test page (in-built oscillators): left-right calibration, ramp up test tone until you hear it; optional compensating EQ (future work implementing own filters) --> Highlight issues!
giuliomoro@0 243 \item Record IP address (PHP function, grab and append to XML file)
giuliomoro@0 244 \item Expand anchor/reference options
giuliomoro@0 245 \item AB / ABX
giuliomoro@0 246 \end{itemize}
giuliomoro@0 247
giuliomoro@0 248 \subsubsection{Issues}
giuliomoro@0 249 \begin{itemize}
giuliomoro@0 250 \item Filters not consistent (Nick to test across browsers)
giuliomoro@0 251 \item Playback audiobuffers need to be destroyed and rebuilt each time
giuliomoro@0 252 \item Can't get channel data, hardware input/output...
giuliomoro@0 253 \end{itemize}
giuliomoro@0 254 \end{comment}
giuliomoro@0 255
giuliomoro@0 256 \section{Architecture} % title? 'back end'? % NICK
giuliomoro@0 257 \label{sec:architecture}
giuliomoro@0 258 %A slightly technical overview of the system. Talk about XML, JavaScript, Web Audio API, HTML5.
giuliomoro@0 259
giuliomoro@0 260 Although WAET uses a sparse subset of the Web Audio API functionality, its performance comes directly from it. Listening tests can convey large amounts of information other than obtaining the perceptual relationship between the audio fragments. With WAET it is possible to track which parts of the audio fragments were listened to and when, at what point in the audio stream the participant switched to a different fragment, and how a fragment's rating was adjusted over time within a session, to name a few. Not only does this allow evaluation of a wealth of perceptual aspects, but it also helps detect poor participants whose results are potentially not representative.
giuliomoro@0 261
giuliomoro@0 262 One of the key initial design parameters for WAET was to make the tool as open as possible to non-programmers. To this end, all of the user modifiable options are included in a single XML document, referred to as the specification document, that can be written manually (or modifying an existing document or template) or using the included test creator. The test creator can modify existing specification documents or generate new ones in an intuitive yet powerful HTML GUI. This simplifies the creation of elements by visualising the data structure with explanatory text.
giuliomoro@0 263
giuliomoro@0 264 %Describe and/or visualise audioholder-audioelement-... structure.
giuliomoro@0 265 The specification document contains the URL of the audio fragments for each test page. These fragments are downloaded asynchronously in the test and decoded offline by the Web Audio offline decoder. The LUFS integrated loudness of the buffers are calculated \cite{loudness201510} and stored to enable on-the-fly loudness normalisation. If the playback uses synchronous looping, the buffers are zero-padded accordingly. Performing these in the browser removes any need for pre-processing. The resulting buffers are assigned to a custom Audio Objects node which tracks the fragment buffer, the Web Audio \textit{bufferSourceNode}, and other specification attributes including its ID, the interface object(s) associated with the fragment and any metric or data collection objects. The Audio Object is controlled by an over-arching custom Audio Engine node allowing for session wide control of the Audio Objects.
giuliomoro@0 266
giuliomoro@0 267 The only significant issue with this model is the \textit{bufferNode} in the Web Audio API, implemented in the standard as a `use once' object. Once the node has been played, it must be discarded as it cannot be instructed to play again. Therefore on each play request the \textit{bufferSourceNode} must be created and then linked with the stored \textit{bufferNode}. This is an odd behaviour with no alternative except to use the HTML5 audio element, but they do not have the ability to synchronously start on a given time and therefore not suited.
giuliomoro@0 268
giuliomoro@0 269 In the test, each buffer node is connected to a gain node configured by the loudness normalisation and any user specified gain. Therefore it is possible to perform a `Method of Adjustment' test where an interface could directly manipulate these gain nodes. These gain nodes are used for cross-fading between samples when operating in synchronous playback. Cross-fading can either be fade-out followed by a fade-in, or a true cross-fade. This is achieved by using the AudioParam controls to provide linear ramping from 0 to the calculated playback level. There is also an optional `Master Volume' slider which can be shown on the test GUI to modify a gain node before the destination. The control's position is tracked providing extra test use validation. This is not indicative of the final volume exiting the speakers, though, not least because the browser cannot read the system volume. Therefore its use should only be considered in a lab environment to ensure results are representative.
giuliomoro@0 270
giuliomoro@0 271 %Which type of files? WAV, anything else? Perhaps not exhaustive list, but say something along the lines of 'whatever browser supports'. Compatability?
giuliomoro@0 272 The media files supported depend on the browser level support for the initial decoding of information and is the same as the browser support for the HTML5 audio element. The most widely supported media file is the wave (.WAV) format which is accepted by every browser supporting the Web Audio API. Most browsers support floating point WAV except Firefox. To resolve this, the tool includes its own wave file decoder to extract the samples. The toolbox works in any browser which supports the Web Audio API and HTML 5.
giuliomoro@0 273
giuliomoro@0 274 All collected session data is returned in an XML document structured similarly to the configuration document, where test pages contain the audio elements with their trace collection, results, comments and any interface-specific data points.
giuliomoro@0 275
giuliomoro@0 276 \section{Remote tests} % with previous?
giuliomoro@0 277 \label{sec:remote}
giuliomoro@0 278
giuliomoro@0 279 If the experimenter is willing to trade some degree of control for a higher number of participants, the test can be hosted on a public web server. This way, a link can be shared widely in the hope of attracting a large amount of subjects, while listening conditions and subject reliability may be less ideal. However, a sound system calibration page and the range of metrics logged mitigate these problems. In some experiments, it may be preferred that the subject has a `real life', familiar listening set-up, for instance when perceived quality differences on everyday sound systems are investigated.
giuliomoro@0 280 Furthermore, a fully browser-based test, where the collection of the results is automatic, is more efficient and technically reliable even when the test still takes place under lab conditions.
giuliomoro@0 281
giuliomoro@0 282 The following features allow easy and effective remote testing:
giuliomoro@0 283 \begin{itemize}[noitemsep,nolistsep] % replaced description list with itemize as it went outside the margins
giuliomoro@0 284 \item \textbf{PHP script to collect result XML files} and store on central server.
giuliomoro@0 285 \item \textbf{Randomly pick a specified number of pages} to ensure an equal and randomised spread of the different pages across participants.
giuliomoro@0 286 \item \textbf{Calibration of the sound system (and participant)} by a perceptual pre-test to gather information about the frequency response and speaker configuration - this can be supplemented with a survey.
giuliomoro@0 287 % In theory calibration could be applied anywhere??
giuliomoro@0 288 % \item Functionality to participate multiple times
giuliomoro@0 289 % \begin{itemize}[noitemsep,nolistsep]
giuliomoro@0 290 % \item Possible to log in with unique ID (no password)
giuliomoro@0 291 % \item Pick `new user' (generates new, unique ID) or `already participated' (need already available ID)
giuliomoro@0 292 % \item Store XML on server with IDs plus which audioholders have already been listened to
giuliomoro@0 293 % \item Don't show `post-test' survey after first time
giuliomoro@0 294 % \item Pick `new' audioholders if available
giuliomoro@0 295 % \item Copy survey information first time to new XMLs
giuliomoro@0 296 % \end{itemize}
giuliomoro@0 297 \item \textbf{Intermediate saves} for tests which were interrupted or unfinished.
giuliomoro@0 298 \item \textbf{Collect IP address information} for geographic location, through PHP function which grabs address and appends to XML file.
giuliomoro@0 299 \item \textbf{Collect browser and display information} to the extent it is available and reliable.
giuliomoro@0 300 \end{itemize}
giuliomoro@0 301
giuliomoro@0 302
giuliomoro@0 303 \section{Interfaces} % title? 'Front end'? % Dave
giuliomoro@0 304 \label{sec:interfaces}
giuliomoro@0 305
giuliomoro@0 306 The purpose of this listening test framework is to allow any user the maximum flexibility to design a listening test for their exact application with minimum effort. To this end, a large range of standard listening test interfaces have been implemented, including
giuliomoro@0 307 \begin{itemize}[noitemsep,nolistsep]
giuliomoro@0 308 \item AB Test~\cite{lipshitz1981great}: Two stimuli presented simultaneously, participant selects a preferred stimulus.
giuliomoro@0 309 \item ABC/HR (ITU-R BS. 1116)~\cite{recommendation19971116} (Mean Opinion Score: MOS): each stimulus has a continuous scale (5-1), labeled as Imperceptible, Perceptible but not annoying, Slightly annoying, Annoying, Very annoying.
giuliomoro@0 310 \item -50 to 50 Bipolar with Ref: each stimulus has a continuous scale -50 to 50 with default values as 0 in middle and a reference.
giuliomoro@0 311 \item Absolute Category Rating (ACR) Scale~\cite{rec1996p}: Likert but labels are Bad, Poor, Fair, Good, Excellent
giuliomoro@0 312 \item ABX Test~\cite{clark1982high}: Two stimuli are presented along with a reference and the participant has to select a preferred stimulus, often the closest to the reference.
giuliomoro@0 313 \item APE \cite{ape}: Multiple stimuli on one or more axes for inter-sample rating.
giuliomoro@0 314 %\item APE style 2D \cite{ape}: Multiple stimuli on a 2D plane for inter-sample rating (e.g. Valence Arousal).
giuliomoro@0 315 \item Comparison Category Rating (CCR) Scale~\cite{rec1996p}: ACR \& DCR but 7 point scale, with reference: Much better, Better, Slightly better, About the same, Slightly worse, Worse, Much worse.
giuliomoro@0 316 \item Degredation Category Rating (DCR) Scale~\cite{rec1996p}: ABC \& Likert but labels are (5) Inaudible, (4) Audible but not annoying, (3) Slightly annoying, (2) Annoying, (1) Very annoying.
giuliomoro@0 317 \item ITU-R 5 Point Continuous Impairment Scale~\cite{rec1997bs}: Same as ABC/HR but with a reference.
giuliomoro@0 318 \item Likert scale~\cite{likert1932technique}: each stimulus has a five point scale with values: Strongly agree, Agree, Neutral, Disagree and Strongly disagree.
giuliomoro@0 319 \item MUSHRA (ITU-R BS. 1534)~\cite{recommendation20031534}
giuliomoro@0 320 \begin{comment}
giuliomoro@0 321 \begin{itemize}[noitemsep,nolistsep]
giuliomoro@0 322 \item Multiple stimuli are presented and rated on a continuous scale, which includes a reference, hidden reference and hidden anchors.
giuliomoro@0 323 \end{itemize}
giuliomoro@0 324 \end{comment}
giuliomoro@0 325 \item Pairwise Comparison (Better/Worse)~\cite{david1963method}: every stimulus is rated as being either better or worse than the reference.
giuliomoro@0 326 \item Rank Scale~\cite{pascoe1983evaluation}: stimuli ranked on single horizontal scale, where they are ordered in preference order.
giuliomoro@0 327 \item 9 Point Hedonic Category Rating Scale~\cite{peryam1952advanced}: each stimulus has a seven point scale with values: Like extremely, Like very much, Like moderate, Like slightly, Neither like nor dislike, Dislike extremely, Dislike very much, Dislike moderate, Dislike slightly. There is also a provided reference.
giuliomoro@0 328 \end{itemize}
giuliomoro@0 329
giuliomoro@0 330 It is possible to include any number of references, hidden references, hidden anchors and comment fields into all of these listening test formats.
giuliomoro@0 331
giuliomoro@0 332 Because of the design to have separate core code and interface modules, it is possible for a third party interface to be built with minimal effort. The repository includes a boilerplate (blank.js) and documentation on which functions must be called and the specific functions they expect your interface to perform. The core includes an `Interface' object which includes object prototypes for the on-page comment boxes (including those with radio or checkbox responses), start and stop buttons and the playhead / transport bars.
giuliomoro@0 333
giuliomoro@0 334 %%%% \begin{itemize}[noitemsep,nolistsep]
giuliomoro@0 335 %%%% \item (APE style) \cite{ape}
giuliomoro@0 336 %%%% \item Multi attribute ratings
giuliomoro@0 337 %%%% \item MUSHRA (ITU-R BS. 1534)~\cite{recommendation20031534}
giuliomoro@0 338 %%%% \item Interval Scale~\cite{zacharov1999round}
giuliomoro@0 339 %%%% \item Rank Scale~\cite{pascoe1983evaluation}
giuliomoro@0 340 %%%%
giuliomoro@0 341 %%%% \item 2D Plane rating - e.g. Valence vs. Arousal~\cite{carroll1969individual}
giuliomoro@0 342 %%%% \item Likert scale~\cite{likert1932technique}
giuliomoro@0 343 %%%%
giuliomoro@0 344 %%%% \item {\bf All the following are the interfaces available in HULTI-GEN~\cite{hultigen} }
giuliomoro@0 345 %%%% \item ABC/HR (ITU-R BS. 1116)~\cite{recommendation19971116}
giuliomoro@0 346 %%%% \begin{itemize}
giuliomoro@0 347 %%%% \item Continuous Scale (5-1) Imperceptible, Perceptible but not annoying, slightly annoying, annoying, very annoying. (default Inaudible?)
giuliomoro@0 348 %%%% \end{itemize}
giuliomoro@0 349 %%%% \item -50 to 50 Bipolar with Ref
giuliomoro@0 350 %%%% \begin{itemize}
giuliomoro@0 351 %%%% \item Scale -50 to 50 on Mushra with default values as 0 in middle and a comparison ``Reference'' to compare to 0 value
giuliomoro@0 352 %%%% \end{itemize}
giuliomoro@0 353 %%%% \item Absolute Category Rating (ACR) Scale~\cite{rec1996p}
giuliomoro@0 354 %%%% \begin{itemize}
giuliomoro@0 355 %%%% \item 5 point Scale - Bad, Poor, Fair, Good, Excellent (Default fair?)
giuliomoro@0 356 %%%% \end{itemize}
giuliomoro@0 357 %%%% \item Degredation Category Rating (DCR) Scale~\cite{rec1996p}
giuliomoro@0 358 %%%% \begin{itemize}
giuliomoro@0 359 %%%% \item 5 point Scale - Inaudible, Audible but not annoying, slightly annoying, annoying, very annoying. (default Inaudible?) - {\it Basically just quantised ABC/HR?}
giuliomoro@0 360 %%%% \end{itemize}
giuliomoro@0 361 %%%% \item Comparison Category Rating (CCR) Scale~\cite{rec1996p}
giuliomoro@0 362 %%%% \begin{itemize}
giuliomoro@0 363 %%%% \item 7 point scale: Much Better, Better, Slightly Better, About the same, slightly worse, worse, much worse - Default about the same with reference to compare to
giuliomoro@0 364 %%%% \end{itemize}
giuliomoro@0 365 %%%% \item 9 Point Hedonic Category Rating Scale~\cite{peryam1952advanced}
giuliomoro@0 366 %%%% \begin{itemize}
giuliomoro@0 367 %%%% \item 9 point scale: Like Extremely, Like Very Much, Like Moderate, Like Slightly, Neither Like nor Dislike, dislike Extremely, dislike Very Much, dislike Moderate, dislike Slightly - Default Neither Like nor Dislike with reference to compare to
giuliomoro@0 368 %%%% \end{itemize}
giuliomoro@0 369 %%%% \item ITU-R 5 Point Continuous Impairment Scale~\cite{rec1997bs}
giuliomoro@0 370 %%%% \begin{itemize}
giuliomoro@0 371 %%%% \item 5 point Scale (5-1) Imperceptible, Perceptible but not annoying, slightly annoying, annoying, very annoying. (default Inaudible?)- {\it Basically just quantised ABC/HR, or Different named DCR}
giuliomoro@0 372 %%%% \end{itemize}
giuliomoro@0 373 %%%% \item Pairwise Comparison (Better/Worse)~\cite{david1963method}
giuliomoro@0 374 %%%% \begin{itemize}
giuliomoro@0 375 %%%% \item 2 point Scale - Better or Worse - (not sure how to default this - they default everything to better, which is an interesting choice)
giuliomoro@0 376 %%%% \end{itemize}
giuliomoro@0 377 %%%% \end{itemize}
giuliomoro@0 378
giuliomoro@0 379 % Build your own test
giuliomoro@0 380
giuliomoro@0 381 \begin{comment}
giuliomoro@0 382 { \bf A screenshot would be nice.
giuliomoro@0 383
giuliomoro@0 384 Established tests (see below) included as `presets' in the build-your-own-test page. }
giuliomoro@0 385 \end{comment}
giuliomoro@0 386
giuliomoro@0 387 \section{Analysis and diagnostics}
giuliomoro@0 388 \label{sec:analysis}
giuliomoro@0 389 % don't mention Python scripts
giuliomoro@0 390 There are several benefits to providing basic analysis tools in the browser: they allow diagnosing problems, with the interface or with the test subject; they may be sufficient for many researchers' purposes; and test subjects may enjoy seeing an overview of their own results and/or results thus far at the end of their tests.
giuliomoro@0 391
giuliomoro@0 392 For this reason, we include a proof-of-concept web page with:
giuliomoro@0 393 \begin{itemize}[noitemsep,nolistsep]
giuliomoro@0 394 \item All page IDs, file names, subject IDs, audio element IDs, ... in the collected XMLs so far
giuliomoro@0 395 \item Selection of subjects and/or test samples to zoom in on a subset of the data %Check/uncheck each of the above for analysis (e.g. zoom in on a certain song, or exclude a subset of subjects)
giuliomoro@0 396 \item Embedded audio to hear corresponding test samples % (follow path in XML setup file, which is also embedded in the XML result file)
giuliomoro@0 397 \item Scatter plot, confidence plot and box plot of rating values (see Figure \ref{fig:boxplot})
giuliomoro@0 398 \item Timeline for a specific subject %(see Figure \ref{fig:timeline})%, perhaps re-playing the experiment in X times realtime. (If actual realtime, you could replay the audio...)
giuliomoro@0 399 \item Distribution plots of any radio button and number questions in pre- and post-test survey %(drop-down menu with `pretest', `posttest', ...; then drop-down menu with question `IDs' like `gender', `age', ...; make pie chart/histogram of these values over selected range of XMLs)
giuliomoro@0 400 \item All `comments' on a specific audioelement
giuliomoro@0 401 \item A `download' function for a CSV of ratings, survey responses and comments% various things (values, survey responses, comments) people might want to use for analysis, e.g. when XML scares them
giuliomoro@0 402 %\item Validation of setup XMLs (easily spot `errors', like duplicate IDs or URLs, missing/dangling tags, ...)
giuliomoro@0 403 \end{itemize}
giuliomoro@0 404
giuliomoro@0 405 \begin{figure}[tbh]
giuliomoro@0 406 \centering
giuliomoro@0 407 \includegraphics[width=.5\textwidth]{boxplot.png}
giuliomoro@0 408 %\caption{This timeline of a single subject's listening test shows playback of fragments (red segments) and marker movements on the rating axis in function of time. }
giuliomoro@0 409 \caption{Box and whisker plot showing the aggregated numerical ratings of six stimuli by a group of subjects.}
giuliomoro@0 410 \label{fig:boxplot}
giuliomoro@0 411 \end{figure}
giuliomoro@0 412
giuliomoro@0 413 %A subset of the above would already be nice for this paper.
giuliomoro@0 414 \section{Concluding remarks}
giuliomoro@0 415 \label{sec:conclusion}
giuliomoro@0 416
giuliomoro@0 417 We have developed a browser-based tool for the design and deployment of listening tests, requiring no programming experience or proprietary software. Following the predictions or guidelines in \cite{schoeffler2015mushra}, it supports remote testing, cross-fading between audio streams, collecting information about the system, among others.
giuliomoro@0 418
giuliomoro@0 419 Whereas many other types of interfaces do exist, we felt that supporting e.g.~a range of `method of adjustment' tests would be beyond the scope of a tool that aims to be versatile enough while not claiming to support any custom experiment one might want to set up. Rather, it supports intuitive creation of non-adaptive listening tests up to multi-stimulus, multi-attribute evaluation including references, anchors, text boxes, radio buttons and/or checkboxes, with arbitrary placement of the various UI elements, and many standard test `presets' already available.
giuliomoro@0 420
giuliomoro@0 421 The code and documentation can be downloaded from the \hyperfootnote[SoundSoftware repository][https://]{code.soundsoftware.ac.uk/projects/webaudioevaluationtool}.
giuliomoro@0 422 % remote
giuliomoro@0 423 % language support (not explicitly stated)
giuliomoro@0 424 % crossfades
giuliomoro@0 425 % choosing speakers/sound device from within browser? --- NOT POSSIBLE, can only determine channel output counts and its up to the hardware to determine
giuliomoro@0 426 % collect information about software and sound system
giuliomoro@0 427 % buttons, scales, ... UI elements
giuliomoro@0 428 % must be able to load uncompressed PCM
giuliomoro@0 429
giuliomoro@0 430 %
giuliomoro@0 431 % The following two commands are all you need in the
giuliomoro@0 432 % initial runs of your .tex file to
giuliomoro@0 433 % produce the bibliography for the citations in your paper.
giuliomoro@0 434 \bibliographystyle{ieeetr}
giuliomoro@0 435 \small
giuliomoro@0 436 \bibliography{WAC2016} % sigproc.bib is the name of the Bibliography in this case
giuliomoro@0 437 % You must have a proper ".bib" file
giuliomoro@0 438 % and remember to run:
giuliomoro@0 439 % latex bibtex latex latex
giuliomoro@0 440 % to resolve all references
giuliomoro@0 441 %
giuliomoro@0 442 % ACM needs 'a single self-contained file'!
giuliomoro@0 443 %
giuliomoro@0 444 \end{document}