def search_all(self, queries, audio_basename=None, case_sensitive=False,<EOL>subsequence=False, supersequence=False, timing_error=<NUM_LIT:0.0>,<EOL>anagram=False, missing_word_tolerance=<NUM_LIT:0>):
search_gen_rest_of_kwargs = {<EOL>"<STR_LIT>": audio_basename,<EOL>"<STR_LIT>": case_sensitive,<EOL>"<STR_LIT>": subsequence,<EOL>"<STR_LIT>": supersequence,<EOL>"<STR_LIT>": timing_error,<EOL>"<STR_LIT>": anagram,<EOL>"<STR_LIT>": missing_word_tolerance}<EOL>if not isinstance(queries, (list, str)):<EOL><INDENT>raise TypeError("<STR_LIT>")<EOL><DEDENT>if type(queries) is not list:<EOL><INDENT>queries = [queries]<EOL><DEDENT>search_results = _PrettyDefaultDict(lambda: _PrettyDefaultDict(list))<EOL>for query in queries:<EOL><INDENT>search_gen = self.search_gen(query=query,<EOL>**search_gen_rest_of_kwargs)<EOL>for search_result in search_gen:<EOL><INDENT>search_results[query][<EOL>search_result["<STR_LIT>"]].append(search_result["<STR_LIT>"])<EOL><DEDENT><DEDENT>return search_results<EOL>
Returns a dictionary of all results of all of the queries for all of
the audio files.
All the specified parameters work per query.

Parameters
----------
queries : [str] or str
    A list of the strings that'll be searched. If type of queries is
    `str`, it'll be insterted into a list within the body of the
    method.
audio_basename : str, optional
    Search only within the given audio_basename.

    Default is `None`.
case_sensitive : bool
    Default is `False`
subsequence : bool, optional
    `True` if it's not needed for the exact word be detected and larger
    strings that contain the given one are fine.

    If the query is a sentences with multiple words, it'll be
    considered for each word, not the whole sentence.

    Default is `False`.
supersequence : bool, optional
    `True` if it's not needed for the exact word be detected and
    smaller strings that are contained within the given one are fine.

    If the query is a sentences with multiple words, it'll be
    considered for each word, not the whole sentence.

    Default is `False`.
anagram : bool, optional
    `True` if it's acceptable for a complete permutation of the word to
    be found. e.g. "abcde" would be acceptable for "edbac".

    If the query is a sentences with multiple words, it'll be
    considered for each word, not the whole sentence.

    Default is `False`.
timing_error : None or float, optional
    Sometimes other words (almost always very small) would be detected
    between the words of the `query`. This parameter defines the
    timing difference/tolerance of the search.

    Default is 0.0 i.e. No timing error is tolerated.
missing_word_tolerance : int, optional
    The number of words that can be missed within the result.
    For example, if the query is "Some random text" and the tolerance
    value is `1`, then "Some text" would be a valid response.
    Note that the first and last words cannot be missed. Also,
    there'll be an error if the value is more than the number of
    available words. For the example above, any value more than 1
    would have given an error (since there's only one word i.e.
    "random" that can be missed)

    Default is 0.

Returns
-------
search_results : {str: {str: [(float, float)]}}
    A dictionary whose keys are queries and whose values are
    dictionaries whose keys are all the audiofiles in which the query
    is present and whose values are a list whose elements are 2-tuples
    whose first element is the starting second of the query and whose
    values are the ending second. e.g.
    {"apple": {"fruits.wav" : [(1.1, 1.12)]}}

Raises
------
TypeError
    if `queries` is neither a list nor a str