The non-official Elixir implementation for Azure Cognitive Services Speech SDK. This project aims to provide all the functionalities described in the official speech sdk for Elixir Projects.
To use the Elixir Speech SDK you first need to add the dependency in your mix.exs
file.
def deps do
[
{:ex_azure_speech, "~> 0.1.0"}
]
end
Optionally, you can add the following configuration to your config.exs
file, to globally configure all the SDK basic settings.
config :ex_azure_speech,
region: "westeurope",
language: "en-US",
auth_key: "YOUR_AZURE_SUBSCRIPTION_KEY"
To configure the speech-to-text module, you need to add the following module to your supervision tree.
children = [
ExAzureSpeech.SpeechToText.Recognizer
]
Supervisor.start_link(children, strategy: :one_for_one)
File.stream!("test.wav") |> SpeechToText.recognize_once()
{:ok,
[%ExAzureSpeech.SpeechToText.Responses.SpeechPhrase{
channel: 0,
display_text: "My voice is my passport verify me.",
duration: 27600000,
id: "ada609c747614c118ac9df6545118646",
n_best: nil,
offset: 7300000,
primary_language: nil,
recognition_status: "Success",
speaker_id: nil
}]}
To configure the text-to-speech module, you need to add the following module to your supervision tree.
children = [
ExAzureSpeech.TextToSpeech.Synthesizer
]
Supervisor.start_link(children, strategy: :one_for_one)
{:ok, stream} = TextToSpeech.speak_text("Hello. World.", "en-US-AriaNeural", "en-US")
{:ok, #Function<52.48886818/2 in Stream.resource/3>}
stream
|> Stream.into(File.stream!("hello_world.wav"))
|> Stream.run()
This library is still in continuous development, so contracts and APIs may change considerably. Please, use it at your own risk.