referring to fig1 audio data processing apparatus 10 is connected via a digital trunk connection to a telephone network 20 . a user can connect to the audio data processing apparatus using telephone 30 on one of a plurality of channels . in this embodiment the audio data processing apparatus is in the form of a suitably programmed general purpose computer , which is connected to the telephone network via a suitable hardware adaptor . the computer can be , for example , one of the ibm risc system / 6000 family of computers on which the ibm directalk / 6000 software is running in conjunction with ibm aix operating system software . the ibm directalk / 6000 software runs and manages audio processing applications and enables the computer to answer or initiate telephone calls , access databases to retrieve and store information or play voice responses to provide information over the network to users . it will be understood that the invention could equally be embodied in dedicated hardware or in any suitable combination of hardware and software . fig2 is a schematic diagram showing the software elements which are implemented in audio data processing apparatus 10 . message generator 40 generates audio messages which are played to the user when an incoming call is answered by the apparatus . audio form recorder 50 is used to capture the audio signal input by the user and store the signal in digitalform in storage device 60 . the audio signal 65 input by the user has the structure shown in fig3 . it is an interleaved sequence of audio segments70 and audio delimiters 80 . each audio segment 70 in audio signal 65 corresponds to one field of an audio form . once the audio signal 65 has been captured and stored , it is processed by parsing unit 90 . this unit parses the stored signal according to a predefined form outline and generates a set of records each containing oneof the audio elements 70 and a tagged index file 150 . this structure is shown in fig4 and is stored in storage device 60 . the parsing unit detects the presence of the delimiters in the audio signal 65 and is able to allocate an appropriate index in the index file accordingly . audio form compiler 100 takes as input a formal description 110 of the audio form and translates this formal description to generate appropriate program code which implements the parsing unit 90 . in this way a user of the system is able to program a desired form outline into the system . the parsing unit 90 is a general purpose such unit which is customised to thisapplication by way of parsing tables 115 generated by the compiler 100 . selection unit 120 accepts the data generated by the parsing unit 90 and performs programmed selection of certain fields of it according to a predefined template . this results in a output stream that contains a desired subset of the input stream . this selection is achieved by editing the index file 150 . analysis unit 130 accepts the output stream of the selection unit and performs an analysis of its content . this analysis can include a transcription of the content of each selected voice segment , either manually via an operator or using automatic speech recognition ; quality enhancement e . g . by filtering out noise ; and sorting of fields by tag , priority or other given criteria . fig5 shows an example of the sequence of events which occurs when a user calls the audio data processing apparatus of a first embodiment of the invention . user dials the number 200 . the call is answered by the apparatus 210 . there then follows a short dialogue 230 in which the user give information identifying the form they wish to fill in . this dialogue is entirely optional and may , for example , be omitted if the telephone number is dedicated to particular type of form . in this example , the dialogue is terminated by a prompt 230 for entry of the audio form . at this stage the apparatus is in a mode in which the dtmf tones representing 0 - 9 are recorded with the speech input , but a * dtmf tone terminates input of the form . the user then enters 240 orally speech information corresponding to fields of a form separated by dtmf tones , entered using the push buttons on the telephone , which identify the fields of the form for which the informationwhich follows is intended . in this example key 1 corresponds to field 1 which may be the caller &# 39 ; s name , key 2 corresponds to field 2 which may be the caller &# 39 ; s address and so on . the entry of the form information is terminated 250 by entry of the * key . the entire form entered by the caller is then stored 260 for subsequent processing in the form of a single audio record 65 including the speech information and the dtmf tones , as illustrated in fig3 . thus , in this embodiment each audio segment is delimited by single or multiple dtmf tones and is identified by the dtmf tone or sequence of tones which precedes it . this structure is shown in fig6 . in this embodiment the fields of the form may be entered in any order . so the user can , for example , fill in the easy parts of the form first , leaving more complicated matters until later . in another embodiment where the audio delimiters are periods of silence between pieces of information given by the user , then it is necessary that some other criterion , such asthe order in which the information is given be used to identify the fields . it is not necessary for the caller to fill in all the fields of the form because fields for which the corresponding dtmf code does not occur in therecorded message can be assumed to be left blank or to take a correspondingdefault value . the following is a piece of pseudo code which illustrates the operation of the form recorder 50 in accordance with fig5 . ______________________________________dcl form : audio ; form . sub .-- number : integer ; begin ; state . sub .-- 0 : play ` enter form number &# 39 ; get . sub .-- data ( form . sub .-- number ) state . sub .-- 1 : play ` enter form &# 39 ; get . sub .-- field ( form ) end ; ______________________________________ the function get -- field () is provided by way of run - time support andretrieves and digitises input from the caller across the digital trunk connection , recording the dtmf tones 0 - 9 with the digitised speech data . form is a variable of data - type audio containing the recorded audio signal . the variable form is subsequently processed as an off - line job . the parsing unit 90 is exemplified in this embodiment by the following pseudo - code . ______________________________________dcl field : voice array ( 3 ) begin ; state . sub .-- 0 : do i = 1 , 3 field ( i ) := decode ( form , i ); end ; ______________________________________ the function decode is provided by way of run - time support to scan the variable form to detect dtmf code i and place the subsequent audio segmentin variable field -- i . fig7 . shows an example of the sequence of events which occurs in a secondembodiment of the invention , in which a conventional dialog is used to build an audio form . a user dials the number at step 300 . the apparatus answers the call and immediately prompts the user for their name in steps 310 , 320 , 330 , 340 . then the user is prompted to select whether they wish to charge a credit card . this selection is made by the user entering an appropriate dtmf code , in this case by pressing either button 1 or 2 . message generator 40 either executes steps 360 and 380 to allow the caller to enter their credit card number or , if they have elected not to charge acredit card prompts the user for their address in steps 370 and 390 . in this second embodiment the recorded audio signal has the structure illustrated in fig8 . it comprises audio segments 400 , 410 , 420 , 430 , separated by audio delimiters 80 which in this case are the dtmf tone representing the # sign . audio segment 400 contains voice field 1 entered at step 320 . audio segment410 contains voice field 2 entered at step 340 . audio segment 420 contains the dtmf tone entered at step 350 . the contents of audio segment 430 depends on the contents of segment 420 . if segment 420 contains the dtmf tone corresponding to ` 1 ` then segment 430 contains the caller &# 39 ; s credit card number either as a sequence of dtmf tones entered by the user , or as a recorded voice segment . if segment 420 contains the dtmf tone corresponding to ` 2 ` then segment 430 contains the callers address as a recorded voice segment . the following pseudo - code shows the operation of the message generator 40 and form recorder 50 in this second embodiment of the invention . ______________________________________dcl form : audio ; choice : dtmf ( 1 ); delim : dtmf ( 1 ); begin ; form := ` &# 39 ;; delim := dtmf . sub .-- #; state . sub .-- 0 : play ` provide first name &# 39 ;; append ( form , delim ); get . sub .-- field ( form ); goto state . sub .-- 1 ; state . sub .-- 1 : play ` provide last name &# 39 ;; append ( form , delim ); get . sub .-- field ( form ); goto state . sub .-- 2 ; state . sub .-- 2 : play ` to charge a credit card press 1 , otherwise press 2 &# 39 ;; get . sub .-- data ( choice ); append ( form , delim ); append ( form , choice ); get . sub .-- field ( form ); if choice = dtmf . sub .-- 1 then go to state . sub .-- 3 ; else go to state . sub .-- 4 ; state . sub .-- 3 play ` enter your credit card number &# 39 ;; append ( form , delim ); get . sub .-- field ( form ); exit ; state . sub .-- 4 play ` what is your address , we will send you our catalogue &# 39 ;; append ( form , delim ); get . sub .-- field ( form ); exit ; end ; ______________________________________ the function append ( form , delim ) simply appends the delimiter delim to variable form . the following pseudo - code shows the operation of the parsing unit 90 in this second embodiment of the invention . ______________________________________dcl first . sub .-- name : voice last . sub .-- name : voice choice : boolean credit . sub .-- card . sub .-- no : audio address : voicebegin ; state . sub .-- 0 : first . sub .-- name := decode ( form , #, 1 ); last . sub .-- name := decode ( form , #, 2 ); goto state . sub .-- 1 ; state . sub .-- 1 : if decode ( form , #, 3 ) = dtmf . sub .-- 1 then ; choice := 1 ; go to state . sub .-- 2 ; else do ; choice := 2 ; go to state . sub .-- 3 ; state . sub .-- 2 credit . sub .-- card . sub .-- no := decode ( form , #, 4 ); exit ; state . sub .-- 3 address := decode ( form , #, 4 ); exit ; end ; ______________________________________ in this case the function decode has a third parameter which tells it whichoccurrence of the delimiter to detect . for example decode ( form , #, 4 ) returns the contents of the audio segment in variable form immediately following the fourth occurrence of the dtmf code representing the # sign . in this embodiment the formal description of the audio form has two components : the list of individual fields , some of which may be arrays of fields e . g . in cases where there is some repeated information such as names of family members for which a hotel reservation is made ; and structural information , e . g . a tree structure in which each path defines one specific form sub - layout , a directed acyclic graph in which each path defines one specific sub - layout and two different sub - layouts may have some fields in common , or even an arbitrary graph which may contain cyclesin cases in which the interaction with the user involves arrays of fields .