Skip to content

Conversation

tracelarue
Copy link

Gemini Live for low-latency bidirectional voice interactions with ros-mcp-server.

  • Added gemini_live to examples/2_gemini.
  • Enables audio input from the user and audio output from Gemini.
  • Enables Gemini Live to use ros-mcp-server.
  • Tested in ubuntu 22.04, python 3.10, ros2 humble.

@tracelarue tracelarue changed the title Voice interactions with Gemini Live and ros-mcp-server added to Gemini example. Add voice interactions with Gemini Live and ros-mcp-server to Gemini example. Sep 24, 2025
@stex2005 stex2005 requested review from stex2005, lpigeon and rjohn-v and removed request for lpigeon September 24, 2025 16:05
@stex2005
Copy link
Contributor

Thank you for your contribution, @tracelarue. I will give it a try soon.

@rjohn-v — I’d suggest adding a client/ folder in the repository to store installation packages and runnable clients. This would help keep different client implementations (e.g., Gemini API client) and their installation steps organized in one place. I’m not sure I’d keep this under examples/.

@stex2005 stex2005 linked an issue Sep 24, 2025 that may be closed by this pull request
@stex2005 stex2005 linked an issue Sep 24, 2025 that may be closed by this pull request
@stex2005
Copy link
Contributor

I connected issue #62 to this PR.
After, we can close it and reopen for other APIs.

@stex2005
Copy link
Contributor

stex2005 commented Sep 26, 2025

image

Raises this error during installation, seems that I need a system-package: portaudio.

I woudl recommend trying to include this into dependencies in the README.md + comamnd to install:

sudo apt install portaudio19-dev

@stex2005
Copy link
Contributor

image

Couldn't run uv run on my WSL Ubuntu. Please specify that this works only on Ubuntu, will try on Ubuntu soon.

@stex2005
Copy link
Contributor

@tracelarue @rjohn-v Another good next step would be to provide a dockerized version of the Gemini client, so it can be run more easily in different environments. Since the client is only a tool within this project, I don’t think we should invest too much effort in tightly integrating it into the repo. A simplified version of client_gemini (without audio support) would already be a good, lightweight solution and would find a good place in clients folder.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would avoid creating a project inside the repository, but since this is a client project, it makes sense. Maybe we should move this example into a clients folder

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would you like me to create a new folder for clients or leave it here for now? If yes, where should I create the clients folder?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rjohn-v what are your thoughts?


2. **Get Google API Key**: Visit [Google AI Studio](https://aistudio.google.com) and create an API key

3. **Create `.env` file**:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please specify where the .env file should be. In this folder?


**Start Gemini Live:**
```bash
cd ros-mcp-server/examples/2_gemini/gemini_live
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we rename this to gemini_client.py or client_gemini.py?


**Pre-requisites** See the [installation instructions](../../../docs/installation.md) for detailed setup steps.

**Tested In:** Ubuntu 22.04, Python 3.10, ROS2 Humble
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this work also on WSL?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am unsure, I have not used WSL before.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, then let's make sure we specify it only works with Ubuntu.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I'll specify that for now. I'll work on learning WSL so I can support it in the future.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unclear what is the role of this file. Do we needed as a dependencies or is it a "test_script"? If not strictly need we can consider removing it from the example.

@stex2005
Copy link
Contributor

Couldn't run uv run on my WSL Ubuntu. Please specify that this works only on Ubuntu, will try on Ubuntu soon.

image

This is the same error when I try to run mcp_handler.py

@tracelarue
Copy link
Author

@stex2005 Thank you for the review and feedback. I'll work on getting these changes and fixes implemented.

@mokcontoro
Copy link
Contributor

@tracelarue wow, voice command sounds super cool. thanks for your contributions. I cannot wait for trying this feature soon!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add example for running a local/on-prem LLM with MCP
3 participants