Imports System
Imports System.IO
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports Test.ServiceModel
Namespace Global
    Namespace Test.ServiceModel
        '''<Summary>
        '''Convert speech to text
        '''</Summary>
        <Api(Description:="Convert speech to text")>
        Public Partial Class SpeechToText
            Implements IGeneration
            '''<Summary>
            '''The audio stream containing the speech to be transcribed
            '''</Summary>
            <ApiMember(Description:="The audio stream containing the speech to be transcribed")>
            <Required>
            Public Overridable Property Audio As String
            '''<Summary>
            '''Optional client-provided identifier for the request
            '''</Summary>
            <ApiMember(Description:="Optional client-provided identifier for the request")>
            Public Overridable Property RefId As String Implements IGeneration.RefId
            '''<Summary>
            '''Tag to identify the request
            '''</Summary>
            <ApiMember(Description:="Tag to identify the request")>
            Public Overridable Property Tag As String Implements IGeneration.Tag
        End Class
        '''<Summary>
        '''Response object for text generation requests
        '''</Summary>
        <Api(Description:="Response object for text generation requests")>
        Public Partial Class TextGenerationResponse
            '''<Summary>
            '''List of generated text outputs
            '''</Summary>
            <ApiMember(Description:="List of generated text outputs")>
            Public Overridable Property Results As List(Of TextOutput)
            '''<Summary>
            '''Detailed response status information
            '''</Summary>
            <ApiMember(Description:="Detailed response status information")>
            Public Overridable Property ResponseStatus As ResponseStatus
        End Class
        '''<Summary>
        '''Output object for generated text
        '''</Summary>
        Public Partial Class TextOutput
            '''<Summary>
            '''The generated text
            '''</Summary>
            <ApiMember(Description:="The generated text")>
            Public Overridable Property Text As String
        End Class
    End Namespace
End Namespace
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /csv/reply/SpeechToText HTTP/1.1 
Host: test.servicestack.net 
Accept: text/csv
Content-Type: text/csv
Content-Length: length
{"audio":"String","refId":"String","tag":"String"}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length
{"results":[{"text":"String"}],"responseStatus":{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}}}