voicebase: Upload audio files to voicebase to get a transcription

[ api, bsd3, library, program ] [ Propose Tags ]

voicebase bindings for http://voicebase.readthedocs.io/en/v2-beta/

[Skip to Readme]
Change log ChangeLog.md
Dependencies aeson, base (>=4.7 && <5), bytestring, HsOpenSSL, http-client, http-client-openssl, json-autotype, lens, mime-types, options, text, voicebase, wreq [details]
License BSD-3-Clause
Copyright Daisee Pty Ltd
Author Jappie Klooster
Maintainer jappie.klooster@daisee.com
Category API
Home page https://bitbucket.org/daisee/voicebase
Uploaded by Jappie at Thu May 3 07:55:37 UTC 2018
Distributions NixOS:
Executables voicebase
Downloads 116 total (38 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2018-05-03 [all 1 reports]
Hackage Matrix CI




Maintainer's Corner

For package maintainers and hackage trustees

Readme for voicebase-

[back to package description]

Haskell bindings for voice base api



    import VoicebaseClient
    import Json.TranscriptTypes

    main = do
      result <- transcribeFile "your bearer token" "./audio.mp3"
      -- get validated response or error
      case result of
        Left err -> print $ err
        Right val -> putStrLn val

      -- get a parsed structure
      parsed <- transcribeParse "your bearer token" "./audio.mp3"
      case parsed of 
        Left err -> print $ err
        Right val -> print $ latestTranscriptsWordsTranscripts . transcriptsLatestTranscripts . mediaTranscripts . topLevelMedia val

There is also a main file which shows usage


  • Post audio file to voicebase
  • Poll for progress
  • Get resulting transcript or valid json or an error.


The source repo can be found here: https://bitbucket.org/daisee/voicebase

wreq client instead of servant

The reason httplib is used rather than servant is because of multipart posting. It was asserted that servant is incapable of doing that. This is a requirement for the voicebase api however. Http client does support this however we need to write more code as a result of this.