Skip to main content
Glama

Voice Mode

by mbailey
audio_player.py•2.73 kB
""" Simple audio player for sound fonts. Handles audio playback with features like volume control, start/end times, and potential future support for URLs and looping. """ import subprocess from pathlib import Path from typing import Optional import sys class Player: """Simple audio player using ffplay.""" def play( self, file_path: str, start: float = 0.0, end: Optional[float] = None, volume: float = 1.0 ) -> bool: """ Play an audio file or slice of it. Args: file_path: Path to audio file (local path, future: URLs) start: Start time in seconds end: End time in seconds (None for end of file) volume: Volume multiplier (0.0 to 1.0) Returns: True if playback started successfully, False otherwise """ # Check if file exists (skip for URLs in future) if not file_path.startswith(('http://', 'https://')): path = Path(file_path) if not path.exists(): if sys.stderr.isatty(): print(f"Error: Audio file not found: {file_path}", file=sys.stderr) return False # Build ffplay command for non-blocking audio playback cmd = [ "ffplay", "-nodisp", # No video display "-autoexit", # Exit when playback ends "-loglevel", "quiet", # Suppress output ] # Add start time if specified if start > 0: cmd.extend(["-ss", str(start)]) # Add duration if end time specified if end is not None: duration = end - start if duration > 0: cmd.extend(["-t", str(duration)]) # Add volume filter if not 1.0 if volume != 1.0: # Clamp volume between 0 and 2 (200%) volume = max(0.0, min(2.0, volume)) cmd.extend(["-af", f"volume={volume}"]) # Add the file path cmd.append(file_path) try: # Run in background (non-blocking) subprocess.Popen( cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL ) return True except FileNotFoundError: # ffplay not installed if sys.stderr.isatty(): print("Error: ffplay not found. Please install ffmpeg.", file=sys.stderr) return False except Exception as e: if sys.stderr.isatty(): print(f"Error playing audio: {e}", file=sys.stderr) return False

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mbailey/voicemode'

If you have feedback or need assistance with the MCP directory API, please join our Discord server