Mercurial > hg > webaudioevaluationtool
comparison docs/WAC2016/WAC2016.tex @ 331:3a43f9e4cecf WAC2016
Updates to all sections.
author | Nicholas Jillings <nicholas.jillings@eecs.qmul.ac.uk> |
---|---|
date | Wed, 14 Oct 2015 20:15:31 +0100 |
parents | 132418abdc27 |
children | 8207063052bf |
comparison
equal
deleted
inserted
replaced
328:132418abdc27 | 331:3a43f9e4cecf |
---|---|
151 \hline | 151 \hline |
152 \textbf{Name} & \textbf{Ref.} & \textbf{Language} & \textbf{Interfaces} & \textbf{Remote} & \textbf{All UI} \\ | 152 \textbf{Name} & \textbf{Ref.} & \textbf{Language} & \textbf{Interfaces} & \textbf{Remote} & \textbf{All UI} \\ |
153 \hline | 153 \hline |
154 APE & \cite{ape} & MATLAB & multi-stimulus, 1 axis per attribute & & \\ | 154 APE & \cite{ape} & MATLAB & multi-stimulus, 1 axis per attribute & & \\ |
155 BeaqleJS & \cite{beaqlejs} & JavaScript & ABX, MUSHRA & (not natively supported) & \\ | 155 BeaqleJS & \cite{beaqlejs} & JavaScript & ABX, MUSHRA & (not natively supported) & \\ |
156 HULTI-GEN & \cite{hultigen} & MAX & & & \checkmark \\ | 156 HULTI-GEN & \cite{hultigen} & MAX & See Table \ref{tab:toolbox_interfaces} & & \checkmark \\ |
157 mushraJS & \footnote{https://github.com/akaroice/mushraJS} & JavaScript & MUSHRA & \checkmark & \\ | 157 mushraJS & \footnote{https://github.com/akaroice/mushraJS} & JavaScript & MUSHRA & \checkmark & \\ |
158 MUSHRAM & \cite{mushram} & MATLAB & MUSHRA & & \\ | 158 MUSHRAM & \cite{mushram} & MATLAB & MUSHRA & & \\ |
159 Scale & \cite{scale} & MATLAB & & & \\ | 159 Scale & \cite{scale} & MATLAB & See Table \ref{tab:toolbox_interfaces} & & \\ |
160 WhisPER & \cite{whisper} & MATLAB & & & \checkmark \\ | 160 WhisPER & \cite{whisper} & MATLAB & See Table \ref{tab:toolbox_interfaces} & & \checkmark \\ |
161 \textbf{WAET} & \cite{waet} & JavaScript & \textbf{all of the above} & \checkmark & \checkmark \\ | 161 \textbf{WAET} & \cite{waet} & JavaScript & \textbf{all of the above, see Table \ref{tab:toolbox_interfaces}} & \checkmark & \checkmark \\ |
162 \hline | 162 \hline |
163 \end{tabular} | 163 \end{tabular} |
164 \end{center} | 164 \end{center} |
165 \label{tab:toolboxes} | 165 \label{tab:toolboxes} |
166 \end{table*}% | 166 \end{table*}% |
187 Multi attribute ratings & \checkmark & & & \checkmark \\ | 187 Multi attribute ratings & \checkmark & & & \checkmark \\ |
188 AB Test & \checkmark & & & \checkmark \\ | 188 AB Test & \checkmark & & & \checkmark \\ |
189 ABX Test & \checkmark & & & \checkmark \\ | 189 ABX Test & \checkmark & & & \checkmark \\ |
190 ``Adaptive psychophysical methods'' & & & \checkmark & \\ | 190 ``Adaptive psychophysical methods'' & & & \checkmark & \\ |
191 Repertory Grid Technique (RGT) & & & \checkmark & \\ | 191 Repertory Grid Technique (RGT) & & & \checkmark & \\ |
192 (Semantic differential) & & & (\checkmark) & \\ % same as a few of the above | 192 (Semantic differential) & & \checkmark & (\checkmark) & \\ % same as a few of the above |
193 \hline | 193 \hline |
194 \end{tabular} | 194 \end{tabular} |
195 \end{center} | 195 \end{center} |
196 \label{tab:toolbox_interfaces} | 196 \label{tab:toolbox_interfaces} |
197 \end{table*}% | 197 \end{table*}% |
198 | 198 |
199 % | 199 % |
200 %Selling points: remote tests, visualisaton, create your own test in the browser, many interfaces, few/no dependencies, flexibility | 200 %Selling points: remote tests, visualisaton, create your own test in the browser, many interfaces, few/no dependencies, flexibility |
201 | 201 |
202 [Talking about what we do in the various sections of this paper. Referring to \cite{waet}. ] | 202 %[Talking about what we do in the various sections of this paper. Referring to \cite{waet}. ] |
203 This paper is divided into five sections. The Architecture section aims to introduce the toolbox by expanding on \cite{waet}, how the Web Audio Evaluation Tool uses the Web Audio API and the relationship of the various modules for configuration, operation and collection. The Remote Tests section aims to briefly highlight the performance of the server-side implementations enabling for powerful remote testing for seemless deployment to many locations. The Interfaces section outlines the various interfaces currently supported by the toolbox along with a brief description of each interface. Analysis and Diagnosis shows the online analysis tools available for processing the gathered data before concluding this paper and highlighting out future work. | |
204 | |
203 \begin{comment} | 205 \begin{comment} |
204 % MEETING 8 OCTOBER | 206 % MEETING 8 OCTOBER |
205 \subsection{Meeting 8 October} | 207 \subsection{Meeting 8 October} |
206 \begin{itemize} | 208 \begin{itemize} |
207 \item Do we manipulate audio?\\ | 209 \item Do we manipulate audio?\\ |
227 \item Can't get channel data, hardware input/output... | 229 \item Can't get channel data, hardware input/output... |
228 \end{itemize} | 230 \end{itemize} |
229 \end{comment} | 231 \end{comment} |
230 | 232 |
231 \section{Architecture} % title? 'back end'? % NICK | 233 \section{Architecture} % title? 'back end'? % NICK |
234 %A slightly technical overview of the system. Talk about XML, JavaScript, Web Audio API, HTML5. | |
232 WAET utilises the Web Audio API for audio playback and uses a sparse subset of the Web Audio API functionality, however the performance of WAET comes directly from the Web Audio API. Listening tests can convey large amounts of information other than obtaining the perceptual relationship between the audio fragments. WAET specifically can obtain which parts of the audio fragments were listened to and when, at what point in the audio stream did the participant switch to a different fragment and what new rating did they give a fragment. Therefore it is possible to not only evaluate the perceptual research question but also evaluate if the participant performed the test well and therefore if their results are representative or should be discarded as an outlier. | 235 WAET utilises the Web Audio API for audio playback and uses a sparse subset of the Web Audio API functionality, however the performance of WAET comes directly from the Web Audio API. Listening tests can convey large amounts of information other than obtaining the perceptual relationship between the audio fragments. WAET specifically can obtain which parts of the audio fragments were listened to and when, at what point in the audio stream did the participant switch to a different fragment and what new rating did they give a fragment. Therefore it is possible to not only evaluate the perceptual research question but also evaluate if the participant performed the test well and therefore if their results are representative or should be discarded as an outlier. |
233 | 236 |
234 One of the key initial design parameters for WAET is to make the tool as open as possible to non-programmers and to this end the tool has been designed in such a way that all of the user modifiable options are included in a single XML document. This document is loaded up automatically by the web page and the JavaScript code parses and loads any extra resources required to create the test. | 237 One of the key initial design parameters for WAET is to make the tool as open as possible to non-programmers and to this end the tool has been designed in such a way that all of the user modifiable options are included in a single XML document. This document is loaded up automatically by the web page and the JavaScript code parses and loads any extra resources required to create the test. |
235 | 238 |
239 %Describe and/or visualise audioholder-audioelement-... structure. | |
236 The specification document also contains the URL of the audio fragments for each test page. These fragments are downloaded asynchronously and decoded offline by the Web Audio offline decoder. The resulting buffers are assigned to a custom Audio Objects node which tracks the fragment buffer, the playback bufferSourceNode, the XML information including its unique test 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 Context node (not to be confused with the Web Audio Context), this parent JS Node allows for session wide control of the Audio Objects including starting and stopping playback of specific nodes. | 240 The specification document also contains the URL of the audio fragments for each test page. These fragments are downloaded asynchronously and decoded offline by the Web Audio offline decoder. The resulting buffers are assigned to a custom Audio Objects node which tracks the fragment buffer, the playback bufferSourceNode, the XML information including its unique test 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 Context node (not to be confused with the Web Audio Context), this parent JS Node allows for session wide control of the Audio Objects including starting and stopping playback of specific nodes. |
237 | 241 |
238 The only issue with this model is the bufferNode in the Web Audio API, which is implemented as a 'use once' object which, once the buffer has been played, the buffer must be discarded as it cannot be instructed to play the buffer again. Therefore on each start request the buffer object must be created and then linked with the stored bufferSourceNode. This is an odd behaviour for such a simple object which has no alternative except to use the HTML5 audio element, however they do not have the ability to synchronously start on a given time and therefore not suited. | 242 The only issue with this model is the bufferNode in the Web Audio API, which is implemented as a 'use once' object which, once the buffer has been played, the buffer must be discarded as it cannot be instructed to play the buffer again. Therefore on each start request the buffer object must be created and then linked with the stored bufferSourceNode. This is an odd behaviour for such a simple object which has no alternative except to use the HTML5 audio element, however they do not have the ability to synchronously start on a given time and therefore not suited. |
239 | 243 |
244 %Which type of files? WAV, anything else? Perhaps not exhaustive list, but say something along the lines of 'whatever browser supports'. Compatability? | |
240 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. Therefore the most widely supported media file is the wave (.WAV) format which can be accpeted by every browser supporting the Web Audio API. The next best supported audio only formats are MP3 and AAC (in MP4) which are supported by all major browsers, Firefox relies on OS decoders and therefore its support is predicated by the OS support. | 245 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. Therefore the most widely supported media file is the wave (.WAV) format which can be accpeted by every browser supporting the Web Audio API. The next best supported audio only formats are MP3 and AAC (in MP4) which are supported by all major browsers, Firefox relies on OS decoders and therefore its support is predicated by the OS support. |
241 | 246 |
242 All the 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 other interface-specific data points. | 247 All the 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 other interface-specific data points. |
243 | 248 |
244 A slightly technical overview of the system. Talk about XML, JavaScript, Web Audio API, HTML5. | |
245 Describe and/or visualise audioholder-audioelement-... structure. | |
246 | |
247 % see also SMC12 - less detail here | |
248 | |
249 Which type of files? % WAV, anything else? Perhaps not exhaustive list, but say something along the lines of 'whatever browser supports' | |
250 | |
251 Streaming audio? % probably not, unless it's easy | |
252 | |
253 Compatibility? % not IE, everything else fine? | |
254 | |
255 | |
256 | |
257 | |
258 \section{Remote tests} % with previous? | 249 \section{Remote tests} % with previous? |
259 | 250 |
260 If the experimenter is willing to trade some degree of control for a higher number of participants, the test can be hosted on a web server so that subjects can take part remotely. 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 a wide range of metrics logged during the test mitigate these problems. Note also that 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. | 251 If the experimenter is willing to trade some degree of control for a higher number of participants, the test can be hosted on a web server so that participants can take part remotely. 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 a wide range of metrics logged during the test mitigate these problems. Note also that 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. |
261 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. | 252 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. |
262 | 253 |
263 The following features allow easy and effective remote testing: | 254 The following features allow easy and effective remote testing: |
264 \begin{itemize}[noitemsep,nolistsep] | 255 \begin{itemize}[noitemsep,nolistsep] |
265 \item PHP script to collect result XML files | 256 \item PHP script to collect result XML files |
404 Established tests (see below) included as `presets' in the build-your-own-test page. } | 395 Established tests (see below) included as `presets' in the build-your-own-test page. } |
405 \end{comment} | 396 \end{comment} |
406 | 397 |
407 \section{Analysis and diagnostics} | 398 \section{Analysis and diagnostics} |
408 % don't mention Python scripts | 399 % don't mention Python scripts |
409 It would be great to have easy-to-use analysis tools to visualise the collected data and even do science with it. Even better would be to have all this in the browser. Complete perfection would be achieved if and when only limited setup, installation time, and expertise are required for the average non-CS researcher to use this. | 400 It would be great to have easy-to-use analysis tools to visualise the collected data and even do science with it. Even better would be to have all this in the browser. Complete perfection would be achieved if and when only limited setup, installation time, and expertise are required for the average non-CS researcher to use this. Tools such as \cite{scale} include analysis features inside their packages as well. |
410 | 401 One advantage to web based tests is the ability to process data as it becomes available using server-side programming. Since entire test sessions are uploaded the results can be immediately parsed and the current test results updated, meaning the researcher simply needs to browse to the web page to collect the current test results in a friendly interface rather than downloading the XML files. |
411 The following could be nice: | 402 |
403 The following functionality is available: | |
412 | 404 |
413 \begin{itemize}[noitemsep,nolistsep] | 405 \begin{itemize}[noitemsep,nolistsep] |
414 \item Web page showing all audioholder IDs, file names, subject IDs, audio element IDs, ... in the collected XMLs so far (\texttt{saves/*.xml}) | 406 \item Web page showing all audioholder IDs, file names, subject IDs, audio element IDs, ... in the collected XMLs so far (\texttt{saves/*.xml}) |
415 \item Check/uncheck each of the above for analysis (e.g. zoom in on a certain song, or exclude a subset of subjects) | 407 \item Check/uncheck each of the above for analysis (e.g. zoom in on a certain song, or exclude a subset of subjects) |
416 \item Click a mix to hear it (follow path in XML setup file, which is also embedded in the XML result file) | 408 \item Click a mix to hear it (follow path in XML setup file, which is also embedded in the XML result file) |
417 \item Box plot, confidence plot, scatter plot of values (for a given audioholder) | 409 \item Box plot, confidence plot, scatter plot of values (for a given audioholder) |
418 \item Timeline for a specific subject (see Python scripts), perhaps re-playing the experiment in X times realtime. (If actual realtime, you could replay the audio...) | 410 \item Timeline for a specific subject / song %(see Python scripts), perhaps re-playing the experiment in X times realtime. (If actual realtime, you could replay the audio...) ---> A LOT of work, not sure I can guarantee this one |
419 \item Distribution plots of any radio button and number questions (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) | 411 \item Distribution plots of any radio button and number questions %(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) |
420 \item All `comments' on a specific audioelement | 412 \item All `comments' on a specific audioelement and export to CSV / XML |
421 \item A `download' button for a nice CSV of various things (values, survey responses, comments) people might want to use for analysis, e.g. when XML scares them | 413 \item A `download' button for a nice CSV of various things (values, survey responses, comments) %people might want to use for analysis, e.g. when XML scares them |
422 \item Validation of setup XMLs (easily spot `errors', like duplicate IDs or URLs, missing/dangling tags, ...) | 414 %\item Validation of setup XMLs (easily spot `errors', like duplicate IDs or URLs, missing/dangling tags, ...) --> Took this out as a feature as the test_create will already do this as will the test console. |
423 \end{itemize} | 415 \end{itemize} |
424 | 416 |
425 A subset of the above would already be nice for this paper. | 417 %A subset of the above would already be nice for this paper. |
426 | 418 |
427 Some pictures here please. | 419 [Some pictures here please.] |
428 | 420 |
429 \section{Concluding remarks and future work} | 421 \section{Concluding remarks and future work} |
430 | 422 |
431 The code and documentation can be pulled or downloaded from \url{code.soundsoftware.ac.uk/projects/webaudioevaluationtool}. | 423 The code and documentation can be pulled or downloaded from \url{code.soundsoftware.ac.uk/projects/webaudioevaluationtool}. |
432 | 424 |