Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Topcast is an open-source Python package that transforms your text into engaging podcast-like audio, much like Google NotebookLM's new "Audio Overview" feature. While Google NotebookLM turns documents and slides into conversations, Topcast gives you the freedom to create podcasts from any text using Text-to-Speech (TTS) and language models, adding layers of sound, structure, and effects to create a comprehensive audio experience.
https://github.com/user-attachments/assets/88f8d774-7f4d-4f39-b646-1238d689d3c6
With Topcast, you can provide a text, and the package will generate a dynamic audio output that includes introductions, interviews, conclusions, and more. It supports multiple TTS providers and AI-powered language models like ChatGPT to make your podcast rich and diverse. The key difference? Topcast is fully open-source, and you have complete control over the customization of your audio content.
from topcast import Topcaster, set_openai_api_key
from topcast.chatgpt_themes import Introduction
set_openai_api_key("XXX-XXX-XXX-XXX-XXX")
topcast = Topcaster()
topcast.add_chapter(audio_layers=[{ "audio" : "sounds/jingle.wav" }])
topcast.add_chapter(
audio_layers=[
{
"audio": {
"content": "Topcast is a Python package that allows you to transform text into a podcast using Text-to-Speech (TTS) and language models. With Topcast, you can provide a text, and the package will create a podcast with an introduction, interview, conclusion, sound effects, and more. Topcast supports various TTS providers and language models.",
"theme": Introduction,
},
},
],
crossfade=2400,
)
topcast.generate()
topcast.export("podcast.wav", format="wav")
Install the package using pip:
pip install topcast
from topcast import (
set_elevenlabs_api_key,
set_google_credentials,
set_openai_api_key,
Topcaster,
)
from topcast.tts_providers import GCP
from topcast.chatgpt_themes import Summary
set_elevenlabs_api_key("XXX-XXX-XXX") # if you want to use elvenlabs for tts
set_google_credentials("gcp-keyfile.json") # if you want google cloud platform for tts
set_openai_api_key("XXX-XXX-XXX") # if you want to use a ChatGPT theme
topcast = Topcaster()
topcast.add_chapter(
audio_layers=[
{
"audio": "sounds/jingle.wav", # use a audio file
"sets_length": True,
}
]
)
topcast.add_chapter(
audio_layers=[
{
"audio": {
"content": "Portugal...",
"tts_provider": GCP, # use google cloud platform for tts
"theme": Summary, # generate a summary of the text using ChatGPT
},
"sets_length": True, # this audio_layer sets the length of the chapter, only one audio_layer can set the length per chapter
"fade_in": 1200, # fade in 1200 ms
"fade_out": 1200, # fade out 1200 ms
},
{"audio": "sounds/background.mp3", "sets_length": False, "volume": 0.5}, # overlay audio
],
crossfade=2400, # crossfade last chapter
)
topcast.generate()
topcast.export("podcast.wav", format="wav")
This will create a podcast using the given chapters and save it as a WAV file named podcast_output.wav.
ChatGPT Themes allow you to transform your text into various structures by leveraging ChatGPT, a large language model. With the available themes, you can transform your text into an interview, introduction, summary, or conclusion. You can also choose to leave the text as it is by using the NoneTheme, which is the default theme.
The available ChatGPT Themes are:
To use a specific ChatGPT theme, first import the desired theme:
from topcast.chatgpt_themes import Interview, Introduction, Summary, Conclusion
Then, set your OpenAI API key using the set_openai_api_key function:
from topcast import set_openai_api_key
set_openai_api_key("your-openai-api-key")
Finally, set the theme
property in the audio layer of the desired chapter:
{
"audio": {
"content": "Text content...",
"theme": Introduction, # Replace with the desired theme
},
}
To keep the original text without any transformation, set NoneTheme or don't set theme
at all
from topcast.chatgpt_themes import NoneTheme
{
"audio": {
"content": "Text content...",
"theme": NoneTheme, # Keeps the text as it is
},
}
Topcast allows you to use various Text-to-Speech (TTS) providers to convert your text into speech. The currently implemented TTS providers are:
First, import the desired TTS provider:
from topcast.tts_providers import GCP, Elevenlabs, GTTS
Next, set the API key or credentials for the provider, if required:
from topcast import set_elevenlabs_api_key, set_google_credentials
set_elevenlabs_api_key("your-elevenlabs-api-key")
set_google_credentials("path-to-gcp-keyfile.json")
Finally, specify the tts_provider property in the audio layer of the desired chapter:
{
"audio": {
"content": "Text content...",
"tts_provider": GCP, # Replace with the desired TTS provider
},
}
For example, to create a chapter using the GCP TTS provider:
topcast.add_chapter(
audio_layers=[
{
"audio": {
"content": "Text content...",
"tts_provider": GCP,
"theme": Summary,
},
"sets_length": True,
"fade_in": 1200,
"fade_out": 1200,
},
],
crossfade=2400,
)
To use the default GTTS provider, you can simply omit the tts_provider property:
{
"audio": {
"content": "Text content...",
},
}
If you're looking for a free, open-source alternative to tools like Google NotebookLM, Topcast gives you the freedom to create personalized audio content without platform restrictions. Whether it's for study, entertainment, or work, Topcast puts the power of AI and audio creation in your hands.
FAQs
A Python package for Topcast
We found that topcast demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.