Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
This project is a digital human that can talk and listen to you. It uses OpenAI's GPT to generate responses, OpenAI's Whisper to transcript the audio, Eleven Labs to generate voice and Rhubarb Lip Sync to generate the lip sync.
| Date | Stars |
|---|---|
| 2026-07-24 | 455 |
| 2026-07-25 | 455 |
| 2026-07-28 | 457 |
| 2026-07-30 | 457 |
| 2026-08-06 | 457 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
https://github.com/asanchezyali/talking-avatar-with-ai/assets/29262782/da316db9-6dd1-4475-9fe5-39dafbeb3cc4
[](https://github.com/asanchezyali/talking-avatar-with-ai/blob/main/LICENSE)
[](https://python.org)
[](https://github.com/asanchezyali/talking-avatar-with-ai)
[](https://github.com/asanchezyali/talking-avatar-with-ai/commits/main)
## Table of Contents
- [Overview](#digital-human)
- [How it Operates](#how-it-operates)
- [Getting Started](#getting-started)
- [Requirements](#requirements)
- [Installation](#installation)
- [References](#references)
## Digital Human
This project is a digital human that can talk and listen to you. It uses OpenAI's GPT-3 to generate responses, OpenAI's
Whisper to transcript the audio, Eleven Labs to generate voice and Rhubarb Lip Sync to generate the lip sync. The tutorial
to understand all the details of the repository can be found at [Monadical](https://monadical.com/posts/build-a-digital-human-with-large-language-models.html).
I have made this Discord channel available: [Math & Code](https://discord.gg/gJ3vCgSWeh) to resolve doubts about the configurations of this project in development.
The brain of this project is based on Open AI, where the avatar characteristics and the shape of the response are
defined in the following code fragment:
```js
import { ChatOpenAI } from "@langchain/openai";
import { ChatPromptTemplate } from "@langchain/core/prompts";
import { StructuredOutputParser } from "langchain/output_parsers";
import { z } from "zod";
import dotenv from "dotenv";
dotenv.config();
const template = `
You are Jack, a world traveler.
You will always respond with a JSON array of messages, with a maximum of 3 messages:
\n{format_instructions}.
Each message has properties for text, facialExpression, and animation.
The different facial expressions are: smile, sad, angry, surprised, funnyFace, and default.
The different animations are: Idle, TalkingOne, TalkingThree, SadIdle, Defeated, Angry,
Surprised, DismissingGesture and ThoughtfulHeadShake.
`;
const prompt = ChatPromptTemplate.fromMessages([
["ai", template],
["human", "{question}"],
]);
const model = new ChatOpenAI({
openAIApiKey: process.env.OPENAI_API_KEY || "-",
modelName: process.env.OPENAI_MODEL || "davinci",
temperature: 0.2,
});
const parser = StructuredOutputParser.fromZodSchema(
z.object({
messages: z.array(
z.object({
text: z.string().describe("Text to be spoken by the AI"),
facialExpression: z
.string()
.describe(
"Facial expression to be used by the AI. Select from: smile, sad, angry, surprised, funnyFace, and default"
),
animation: z
.string()
.describe(
`Animation to be used by the AI. Select from: Idle, TalkingOne, TalkingThree, SadIdle,
Defeated, Angry, Surprised, DismissingGesture, and ThoughtfulHeadShake.`
),
})
),
})
);
const openAIChain = prompt.pipe(model).pipe(parser);
export { openAIChain, parser };
```
The code performs four main tasks:
* It sets up the environment using the dotenv library to establish the necessary environment variables for interacting with the OpenAI API.
* It defines a "prompt" template using the ChatPromptTemplate class from @langchain/core/prompts. This template guides the conversation as a predefined script for the chat.
* It configures the chat model using the ChatOpenAI class, which relies on OpenAI's "davinci" model if the environment variables have not been configured previously.
* It parses the output, designing the response generated by the AI in a specific format that inclExcerpt of 10,202 characters
Read on GitHubWould you bet a product on this? Bounded 0–100 and slow moving.
matched fp:883ebc5d4151e76f, topic:lip-sync, desc:lip sync, readme:lip sync
matched fp:883ebc5d4151e76f, topic:whisper