ElevenLabs Text2Speech
This notebook shows how to interact with theElevenLabs API
to achieve text-to-speech capabilities.
First, you need to set up an ElevenLabs account. You can follow the instructionshere.
%pip install--upgrade--quiet elevenlabs langchain-community
import os
os.environ["ELEVENLABS_API_KEY"]=""
Usage
from langchain_community.toolsimport ElevenLabsText2SpeechTool
text_to_speak="Hello world! I am the real slim shady"
tts= ElevenLabsText2SpeechTool()
tts.name
API Reference:ElevenLabsText2SpeechTool
'eleven_labs_text2speech'
We can generate audio, save it to the temporary file and then play it.
speech_file= tts.run(text_to_speak)
tts.play(speech_file)
Or stream audio directly.
tts.stream_speech(text_to_speak)
Use within an Agent
from langchain.agentsimport AgentType, initialize_agent, load_tools
from langchain_openaiimport OpenAI
llm= OpenAI(temperature=0)
tools= load_tools(["eleven_labs_text2speech"])
agent= initialize_agent(
tools=tools,
llm=llm,
agent=AgentType.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION,
verbose=True,
)
audio_file= agent.run("Tell me a joke and read it out for me.")
[1m> Entering new AgentExecutor chain...[0m
[32;1m[1;3mAction:
\`\`\`
{
"action": "eleven_labs_text2speech",
"action_input": {
"query": "Why did the chicken cross the playground? To get to the other slide!"
}
}
\`\`\`
[0m
Observation: [36;1m[1;3m/tmp/tmpsfg783f1.wav[0m
Thought:[32;1m[1;3m I have the audio file ready to be sent to the human
Action:
\`\`\`
{
"action": "Final Answer",
"action_input": "/tmp/tmpsfg783f1.wav"
}
\`\`\`
[0m
[1m> Finished chain.[0m
tts.play(audio_file)
Related
- Toolconceptual guide
- Toolhow-to guides