The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
The package uses the Speechmatics API, which requires an API key. Sign up at https://www.speechmatics.com/ to get one, then set it as an environment variable:
For persistent use, add it to your .Renviron file:
SPEECHMATICS_API_KEY=your-key-here
sm_transcribe() submits an audio file, waits for the
result, and writes the transcript to a text file in your working
directory:
library(speechmatics)
audio <- system.file("extdata", "testrecording.mp3", package = "speechmatics")
sm_transcribe(audio)
#> ✔ Submitting 'testrecording.mp3'
#> ℹ Job ID: "2om9psu1np"
#> ✔ Waiting for transcription [5.8s]
#> ✔ Saved to testrecording.txtYou can also specify the output path:
Use sm_transcription_config() to control language,
quality, and diarization:
# French, enhanced quality
sm_transcribe(
audio,
config = sm_transcription_config(language = "fr", quality = "enhanced")
)
#> ✔ Submitting 'testrecording.mp3'
#> ℹ Job ID: "2om9psu1np"
#> ✔ Waiting for transcription [6.1s]
#> ✔ Saved to testrecording.txtSpeaker diarization identifies who said what from a single audio channel:
Channel diarization separates speakers that are already on different audio channels:
You can work with jobs directly using the lower-level functions:
# list all jobs
jobs <- sm_list_jobs()
jobs
#> id status created_at data_name duration
#> 1 2om9psu1np done 2026-06-06T08:12:19.089Z testrecording.mp3 3
#> 2 w06jp9mjvm done 2026-06-04T10:19:28.351Z idea-morning-walk.mp3 2037
#> 3 xco00nzvpq done 2026-06-01T11:33:28.303Z conf-talk.mp3 1501
#> language operating_point diarization
#> 1 en standard <NA>
#> 2 en enhanced speaker
#> 3 en enhanced speaker
# get a transcript in different formats
sm_get_transcript("2om9psu1np")
#> [1] "Hi. This is a test recording."
sm_get_transcript("2om9psu1np", format = "srt")
#> [1] "1\n00:00:00,000 --> 00:00:02,000\nHi. This is a test recording.\n"
sm_get_transcript("2om9psu1np", format = "json-v2")
#> $format
#> [1] "2.9"
#>
#> $job
#> $job$created_at
#> [1] "2026-06-06T08:12:19.089Z"
#>
#> $job$data_name
#> [1] "testrecording.mp3"
#>
#> $results
#> $results[[1]]
#> $results[[1]]$alternatives
#> $results[[1]]$alternatives[[1]]
#> $results[[1]]$alternatives[[1]]$confidence
#> [1] 1
#>
#> $results[[1]]$alternatives[[1]]$content
#> [1] "Hi"
#>
#> ...
# delete a job
sm_delete_job("2om9psu1np")These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.