comparison docs/SMC15/smc2015template.tex @ 225:dfd24b98c2b2

SMC paper: added boxplot graph, input XML, decreased itemize spacing (also changed index.html page title)
author Brecht De Man <b.deman@qmul.ac.uk>
date Thu, 18 Jun 2015 17:34:27 +0100
parents 49f35ece394c
children 7457299211e0
comparison
equal deleted inserted replaced
222:49f35ece394c 225:dfd24b98c2b2
8 \usepackage{times} 8 \usepackage{times}
9 \usepackage{ifpdf} 9 \usepackage{ifpdf}
10 \usepackage[english]{babel} 10 \usepackage[english]{babel}
11 \usepackage{cite} 11 \usepackage{cite}
12 \usepackage{enumitem} 12 \usepackage{enumitem}
13 \usepackage{listings}
13 \setitemize{noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt} 14 \setitemize{noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt}
15
16
17
18 \usepackage{color}
19 \definecolor{gray}{rgb}{0.4,0.4,0.4}
20 \definecolor{darkblue}{rgb}{0.0,0.0,0.6}
21 \definecolor{cyan}{rgb}{0.0,0.6,0.6}
22
14 23
15 \hyphenation{Java-script} 24 \hyphenation{Java-script}
16 25
17 %%%%%%%%%%%%%%%%%%%%%%%% Some useful packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 26 %%%%%%%%%%%%%%%%%%%%%%%% Some useful packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18 %%%%%%%%%%%%%%%%%%%%%%%% See related documentation %%%%%%%%%%%%%%%%%%%%%%%%%% 27 %%%%%%%%%%%%%%%%%%%%%%%% See related documentation %%%%%%%%%%%%%%%%%%%%%%%%%%
235 %There are some areas of the design where certain design choices had to be made such as with the markers. 244 %There are some areas of the design where certain design choices had to be made such as with the markers.
236 245
237 %For instance, the option to provide free-text comment fields allows for tests with individual vocabulary methods, as opposed to only allowing quantitative scales associated to a fixed set of descriptors. 246 %For instance, the option to provide free-text comment fields allows for tests with individual vocabulary methods, as opposed to only allowing quantitative scales associated to a fixed set of descriptors.
238 247
239 \begin{figure*}[ht] 248 \begin{figure*}[ht]
240 \begin{center} 249 \centering
241 \includegraphics[width=1.0\textwidth]{interface2.png} 250 \includegraphics[width=.9\textwidth]{interface.png}
242 \caption{Example of interface, with 1 axis, 6 fragments and 1 extra comment in Chrome browser} 251 \caption{Example of interface, with 1 axis, 7 fragments and a text, radio button and check box style comment.}
243 \label{fig:interface} 252 \label{fig:interface}
244 \end{center}
245 \end{figure*} 253 \end{figure*}
246 254
247 255
248 \section{Architecture}\label{sec:architecture} % or implementation? 256 \section{Architecture}\label{sec:architecture} % or implementation?
249 257
280 % Don't think this is relevant anymore 288 % Don't think this is relevant anymore
281 289
282 290
283 \section{Input and result files}\label{sec:setupresultsformats} 291 \section{Input and result files}\label{sec:setupresultsformats}
284 292
285 The setup and result files both use the common XML document format to outline the various parameters. The setup file determines the interface to use, the location of audio files, the number of pages and other parameters to define the testing environment. Having one document to modify allows for quick manipulation in a `human readable' form to create new tests, or adjust current ones, without needing to edit multiple web files. Furthermore, we also provide a simple web page to enter all these settings without needing to manipulate the raw XML. An example of this XML document is presented in Figure~\ref{fig:xmlIn}. % I mean the .js and .html files, though not sure if any better. 293 The setup and result files both use the common XML document format to outline the various parameters. The setup file determines the interface to use, the location of audio files, the number of pages and other parameters to define the testing environment. Having one document to modify allows for quick manipulation in a `human readable' form to create new tests, or adjust current ones, without needing to edit multiple web files. Furthermore, we also provide a simple web page to enter all these settings without needing to manipulate the raw XML. An example of this XML document is presented below. % I mean the .js and .html files, though not sure if any better.
294
295
296
297
298 \lstset{
299 basicstyle=\ttfamily,
300 columns=fullflexible,
301 showstringspaces=false,
302 commentstyle=\color{gray}\upshape
303 }
304
305 \lstdefinelanguage{XML}
306 {
307 morestring=[b]",
308 morestring=[s]{>}{<},
309 morecomment=[s]{<?}{?>},
310 stringstyle=\color{black} \bfseries,
311 identifierstyle=\color{darkblue} \bfseries,
312 keywordstyle=\color{cyan} \bfseries,
313 morekeywords={xmlns,version,type},
314 breaklines=true% list your attributes here
315 }
316 \tiny
317 \lstset{language=XML}
318
319 \begin{lstlisting}
320 <?xml version="1.0" encoding="utf-8"?>
321 <BrowserEvalProjectDocument>
322 <setup interface="APE" projectReturn="/save" randomiseOrder='false' collectMetrics='true'>
323 <PreTest>
324 <question id="location" mandatory="true">Please enter your location.</question>
325 <number id="age" min="0">Please enter your age</number>
326 </PreTest>
327 <PostTest>
328 <statement>Thank you for taking this listening test!</statement>
329 </PostTest>
330 <Metric>
331 <metricEnable>testTimer</metricEnable>
332 <metricEnable>elementTimer</metricEnable>
333 <metricEnable>elementInitialPosition</metricEnable>
334 <metricEnable>elementTracker</metricEnable>
335 <metricEnable>elementFlagListenedTo</metricEnable>
336 <metricEnable>elementFlagMoved</metricEnable>
337 <metricEnable>elementListenTracker</metricEnable>
338 </Metric>
339 <interface>
340 <anchor>20</anchor>
341 <reference>80</reference>
342 </interface>
343 </setup>
344 <audioHolder id="test-0" hostURL="example_eval/" randomiseOrder='true'>
345 <interface>
346 <title>Example Test Question</title>
347 <scale position="0">Min</scale>
348 <scale position="100">Max</scale>
349 <commentBoxPrefix>Comment on fragment</commentBoxPrefix>
350 </interface>
351 <audioElements url="0.wav" id="0"/>
352 <audioElements url="1.wav" id="1"/>
353 <audioElements url="2.wav" id="2"/>
354 <audioElements url="3.wav" id="3"/>
355 <CommentQuestion id="generalExperience" type="text">General Comments</CommentQuestion>
356 <PreTest/>
357 <PostTest>
358 <question id="genre" mandatory="true">Please enter the genre of the song.</question>
359 </PostTest>
360 </audioHolder>
361
362 \end{lstlisting}
363
364 \normalsize
286 365
287 \subsection{Setup and configurability} 366 \subsection{Setup and configurability}
288 367
289 \begin{figure}[ht]
290 \begin{center}
291 \includegraphics[width=0.5\textwidth]{XMLInput2.png}
292 \caption{An example input XML file}
293 \label{fig:xmlIn}
294 \end{center}
295 \end{figure}
296
297 The setup document has several defined nodes and structure which are documented with the source code. For example, there is a section for general setup options where any pre-test and post-test questions and statements can be defined. Pre- and post-test dialogue boxes allow for comments or questions to be presented before or after the test, to convey listening test instructions, and gather information about the subject, listening environment, and overall experience of the test. In the example in Figure~\ref{fig:xmlIn}, a question box with the id `location' is added, which is set to be mandatory to answer. The question is in the PreTest node meaning it will appear before any testing will begin. When the result for the entire test is shown, the response will appear in the PreTest node with the id `location' allowing it to be found easily, provided the id values are meaningful. 368 The setup document has several defined nodes and structure which are documented with the source code. For example, there is a section for general setup options where any pre-test and post-test questions and statements can be defined. Pre- and post-test dialogue boxes allow for comments or questions to be presented before or after the test, to convey listening test instructions, and gather information about the subject, listening environment, and overall experience of the test. In the example in Figure~\ref{fig:xmlIn}, a question box with the id `location' is added, which is set to be mandatory to answer. The question is in the PreTest node meaning it will appear before any testing will begin. When the result for the entire test is shown, the response will appear in the PreTest node with the id `location' allowing it to be found easily, provided the id values are meaningful.
298 369
299 We try to cater to a diverse audience with this toolbox, while ensuring it is simple, elegant and straightforward. To that end, we currently include the following options that can be easily switched on and off, by setting the value in the input XML file. 370 We try to cater to a diverse audience with this toolbox, while ensuring it is simple, elegant and straightforward. To that end, we currently include the following options that can be easily switched on and off, by setting the value in the input XML file.
300 371
301 \begin{itemize} %Should have used a description list for this. 372 \begin{itemize}[leftmargin=*]%Should have used a description list for this.
302 \item \textbf{Snap to corresponding position}: When this is enabled, and a fragment is playing, the playhead skips to the same position in the next fragment that is clicked. If it is not enabled, every fragment is played from the start. 373 \item \textbf{Snap to corresponding position}: When this is enabled, and a fragment is playing, the playhead skips to the same position in the next fragment that is clicked. If it is not enabled, every fragment is played from the start.
303 \item \textbf{Loop fragments}: Repeat current fragment when end is reached, until the `Stop audio' or `Submit' button is clicked. 374 \item \textbf{Loop fragments}: Repeat current fragment when end is reached, until the `Stop audio' or `Submit' button is clicked.
304 \item \textbf{Comments}: Displays a separate comment box for each fragment in the page. 375 \item \textbf{Comments}: Displays a separate comment box for each fragment in the page.
305 \item \textbf{General comment}: One comment box, additional to the individual comment boxes, to comment on the test or a feature that some or all of the fragments share. 376 \item \textbf{General comment}: One comment box, additional to the individual comment boxes, to comment on the test or a feature that some or all of the fragments share.
306 \item \textbf{Resampling}: When this is enabled, tracks are resampled to match the subject's system's sample rate (a default feature of the Web Audio API). When it is not, an error is shown when the system does not match the requested sample rate. 377 \item \textbf{Resampling}: When this is enabled, tracks are resampled to match the subject's system's sample rate (a default feature of the Web Audio API). When it is not, an error is shown when the system does not match the requested sample rate.
325 396
326 % loop, snap to corresponding position, comments, 'general' comment, require same sampling rate, different types of randomisation 397 % loop, snap to corresponding position, comments, 'general' comment, require same sampling rate, different types of randomisation
327 398
328 \subsection{Results} 399 \subsection{Results}
329 400
330 The results file is dynamically generated by the interface upon clicking the `Submit' button. This also executes checks, depending on the setup file, to ensure that all tracks have been played back, rated and commented on. The XML output returned contains a node per audioObject and contains both the corresponding marker's position and any comments written in the associated comment box. The rating returned is normalised to be a value between 0 and 1, normalising the pixel representation of different browser windows. An example output file is presented in Figure~\ref{fig:xmlOut}. 401 The results file is dynamically generated by the interface upon clicking the `Submit' button. This also executes checks, depending on the setup file, to ensure that all tracks have been played back, rated and commented on. The XML output returned contains a node per audioObject and contains both the corresponding marker's position and any comments written in the associated comment box. The rating returned is normalised to be a value between 0 and 1, normalising the pixel representation of different browser windows. An example output file is presented below.
331 402
332 \begin{figure}[ht] 403 \tiny
333 \begin{center} 404 \lstset{language=XML}
334 \includegraphics[width=0.5\textwidth]{XMLOutput2.png} 405
335 \caption{An example output XML file} 406 \begin{lstlisting}
336 \label{fig:xmlOut} 407 ADD XML HERE
337 \end{center} 408
338 \end{figure} 409 \end{lstlisting}
339 410
340 The results also contain information collected by any defined pre/post questions. These are referenced against the setup XML by using the same ID so readable responses can be obtained. Taking from the earlier example of setting up a pre-test question, an example response can be seen in Figure \ref{fig:xmlOut}. 411 \normalsize
412
413
414 The results also contain information collected by any defined pre/post questions. These are referenced against the setup XML by using the same ID so readable responses can be obtained. Taking from the earlier example of setting up a pre-test question, an example response can be seen above. %MAKE SURE THERE IS ONE!
341 415
342 Each page of testing is returned with the results of the entire page included in the structure. One `audioElement' node is created per audio fragment per page, along with its ID. This includes several child nodes including the rating between 0 and 1, the comment, and any other collected metrics including how long the element was listened for, the initial position, boolean flags if the element was listened to, if the element was moved and if the element comment box had any comment. Furthermore, each user action (manipulation of any interface element, such as playback or moving a marker) can be logged along with a the corresponding time code. 416 Each page of testing is returned with the results of the entire page included in the structure. One `audioElement' node is created per audio fragment per page, along with its ID. This includes several child nodes including the rating between 0 and 1, the comment, and any other collected metrics including how long the element was listened for, the initial position, boolean flags if the element was listened to, if the element was moved and if the element comment box had any comment. Furthermore, each user action (manipulation of any interface element, such as playback or moving a marker) can be logged along with a the corresponding time code.
343 We also store session data such as the browser the tool was used in. 417 We also store session data such as the browser the tool was used in.
344 We provide the option to store the results locally, and/or to have them sent to a server. 418 We provide the option to store the results locally, and/or to have them sent to a server.
345 419
374 The parent tag \texttt{audioelement} holds the ID of the element passed in from the setup document. The first child element is \texttt{comment} and holds both the question shown and the response from the comment box inside. 448 The parent tag \texttt{audioelement} holds the ID of the element passed in from the setup document. The first child element is \texttt{comment} and holds both the question shown and the response from the comment box inside.
375 The child element \texttt{value} holds the normalised ranking value. Next comes the metric node structure, with one metric result node per metric event collected. The id of the node identifies the type of data it contains. For example, the first holds the id \textit{elementTimer} and the data contained represents how long, in seconds, the audio element was listened to. There is one \texttt{audioelement} tag per audio element on each test page. 449 The child element \texttt{value} holds the normalised ranking value. Next comes the metric node structure, with one metric result node per metric event collected. The id of the node identifies the type of data it contains. For example, the first holds the id \textit{elementTimer} and the data contained represents how long, in seconds, the audio element was listened to. There is one \texttt{audioelement} tag per audio element on each test page.
376 450
377 % BRECHT: scripts 451 % BRECHT: scripts
378 452
379 Python scripts are included to easily store ratings and comments in a CSV file, and to display graphs of numerical ratings or the test's timeline. 453 \begin{figure}[htpb]
454 \begin{center}
455 \includegraphics[width=.45\textwidth]{boxplot2.png}
456 \caption{An example boxplot showing ratings by different subjects on fragments labeled `A' through `G'. }
457 \label{fig:boxplot}
458 \end{center}
459 \end{figure}
460
461 Python scripts are included to easily store ratings and comments in a CSV file, and to display graphs of numerical ratings (see Figure \ref{fig:boxplot}) or the test's timeline.
380 Visualisation of plots requires the free matplotlib library. 462 Visualisation of plots requires the free matplotlib library.
381 463
382 464
383 \section{Conclusions and future work}\label{sec:conclusions} 465 \section{Conclusions and future work}\label{sec:conclusions}
384 466
385 In this paper we have presented an approach to creating a browser-based listening test environment that can be used for a variety of types of perceptual evaluation of audio. 467 In this paper we have presented an approach to creating a browser-based listening test environment that can be used for a variety of types of perceptual evaluation of audio.
386 Specifically, we discussed the use of the toolbox in the context of assessment of preference for different production practices, with identical source material. 468 Specifically, we discussed the use of the toolbox in the context of assessment of preference for different production practices, with identical source material.
387 The purpose of this paper is to outline the design of this tool, to describe our implementation using basic HTML5 functionality, and to discuss design challenges and limitations of our approach. This tool differentiates itself from other perceptual audio tools by enabling web technologies for multiple participants to perform the test without the need for proprietary software such as MATLAB. The tool also allows for any interface to be built using HTML5 elements to create a variety of dynamic, multiple-stimulus listening test interfaces. It enables quick setup of simple tests with the ability to manage complex tests through a single file. Finally it uses the XML document format to store the results allowing for processing and analysis of results in various third party software such as MATLAB or Python. 469 The purpose of this paper is to outline the design of this tool, to describe our implementation using basic HTML5 functionality, and to discuss design challenges and limitations of our approach. This tool differentiates itself from other perceptual audio tools by enabling web technologies for multiple participants to perform the test without the need for proprietary software such as MATLAB. The tool also allows for any interface to be built using HTML5 elements to create a variety of dynamic, multiple-stimulus listening test interfaces. It enables quick setup of simple tests with the ability to manage complex tests through a single file. Finally it uses the XML document format to store the results allowing for processing and analysis of results in various third party software such as MATLAB or Python.
388 470
389 % future work 471 % future work
390 Further work may include the development of other common test designs, such as MUSHRA \cite{mushra}, 2D valence and arousal/activity \cite{ratingeerola2009prediction}, and others. We will add functionality to assist with setting up large-scale tests with remote subjects, so this becomes straightforward and intuitive. 472 Further work may include the development of other common test designs, such as MUSHRA \cite{mushra}, 2D valence and arousal/activity \cite{eerola2009prediction}, and others. We will add functionality to assist with setting up large-scale tests with remote subjects, so this becomes straightforward and intuitive.
391 In addition, we will keep on improving and expanding the tool, and highly welcome feedback and contributions from the community. 473 In addition, we will keep on improving and expanding the tool, and highly welcome feedback and contributions from the community.
392 474
393 The source code of this tool can be found on \\ \texttt{code.soundsoftware.ac.uk/projects/}\\ \texttt{webaudioevaluationtool}. 475 The source code of this tool can be found on \\ \texttt{code.soundsoftware.ac.uk/projects/}\\ \texttt{webaudioevaluationtool}.
394 476
395 477