Skip to content

Commit 4ae26c8

Browse files
Update README.md
Condensed the readme and made it more user-friendly. - Moved to-do list to the bottom - Updated to-do list - Added more pages to the wiki that contained the design document and stuff from the readme.
1 parent 6c0037f commit 4ae26c8

1 file changed

Lines changed: 90 additions & 178 deletions

File tree

README.md

Lines changed: 90 additions & 178 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ and equipment.
2929

3030
### 2.2. Text-to-Speech Integration
3131

32-
- [ ] Integration with Azure TTS for text-to-speech functionality
32+
- [x] Integration with Azure TTS for text-to-speech functionality
3333
- [ ] Step-by-step guide for users to obtain and set up an API key
3434
- [ ] TTS to voice Twitch chat messages
3535
- [ ] Alternative for VTubers to type instead of talking, using TTS for vocalization
@@ -39,43 +39,18 @@ and equipment.
3939
- [x] Twitch chat integration for seamless viewer interaction
4040
- [ ] Interactive features using Twitch bits or reward points, such as throwing objects at the model
4141

42-
### 2.4. Expression and Gesture Presets
4342

44-
- [ ] Library of pre-set expressions and gestures (e.g., surprise, anger, joy)
45-
- [ ] Custom hotkeys and wake words for triggering presets
46-
47-
### 2.5. Scene Transitions and Effects
48-
49-
- [ ] Library of pre-made scene transitions and effects
50-
- [ ] Customizable transitions for a professional and polished presentation
51-
52-
### 2.6. Mouse Tracking for Eye and Body Movements
43+
### 2.4. Mouse Tracking for Eye and Body Movements
5344
- [x] Avatar's eyes follow the user's cursor for a more lifelike and responsive experience
5445
- [ ] Post-processing pass and body morphing based on mouse position, creating an effect where the body of the model follows the mouse
5546

56-
### 2.7. Audio Analysis for Animation Triggers
57-
58-
- [ ] Audio amplitude analysis to use different sets of mouth shapes based on the loudness or quietness of the VTuber's speech
59-
- [ ] Pitch analysis for detecting excitement or screaming
60-
61-
### 2.8. Voice Anonymization
62-
63-
- [ ] Speech-to-text (STT) conversion to transcribe the streamer's voice into text
64-
- [ ] Text-to-speech (TTS) system to vocalize the transcribed text with a synthetic voice, concealing the streamer's real voice
65-
- [ ] Various synthetic voice options for customization and personalization
66-
67-
By incorporating the voice anonymization feature, you can cater to a
68-
wider audience of streamers, including those who are concerned about
69-
privacy or prefer not to reveal their actual voice. This added
70-
functionality can make your PNGTuber software even more versatile and
71-
appealing to a diverse range of users.
7247

7348
3\. Open-Source and Lightweight Approach
7449
----------------------------------------
7550

7651
- [x] Released under an MIT license
77-
- [ ] Donation button for financial support through GitHub
78-
- [ ] Focus on maintaining a lightweight application without compromising features
52+
- [x] Donation button for financial support through GitHub
53+
- [x] Focus on maintaining a lightweight application without compromising features
7954

8055
4\. User Interface and Customization
8156
------------------------------------
@@ -87,42 +62,9 @@ appealing to a diverse range of users.
8762
- [ ] Addition of gadgets and a toolbar for more traditional editing
8863
options
8964

90-
5\. Monetization Strategy
91-
-------------------------
92-
93-
### 5.1. Donations
94-
95-
- [ ] Open-source software with a donation button on GitHub for
96-
financial support from users who appreciate the application
97-
98-
### 5.2. Marketplace Platform
99-
100-
- [ ] Create a marketplace platform where users can upload, sell, and
101-
purchase custom models, accessories, and other assets for the
102-
PNGTuber software
103-
- [ ] Generate revenue through commission fees on sales made through the
104-
platform
105-
- [ ] Facilitate a thriving community of content creators and artists,
106-
contributing to the overall success and popularity of the software
10765

108-
By integrating a marketplace platform, you'll not only be providing a
109-
means of monetization, but also encouraging a community of creators to
110-
contribute to and benefit from the software. This approach allows you
111-
to support the development and maintenance of the software while still
112-
keeping it open-source and accessible to users.
11366

114-
6\. Conclusion
115-
--------------
116-
117-
This design document provides an overview of the key features and
118-
functionality for a lightweight and user-friendly PNGTuber software
119-
application. By focusing on unique features and maintaining a
120-
lightweight design, the software aims to differentiate itself from
121-
competitors and provide a versatile solution for content creators. As
122-
development progresses, user feedback and market trends should be
123-
considered to further refine and improve the application.
124-
125-
7\. Dependencies
67+
5\. Dependencies
12668
----------------
12769

12870
* **Dear ImGui** - A lightweight and efficient Immediate Mode Graphical User Interface library for creating simple and functional graphical interfaces.
@@ -138,36 +80,93 @@ considered to further refine and improve the application.
13880
* **ser** - A lightweight and efficient serialization/deserialization library for C++
13981
* **stb** - A collection of single-file public domain libraries, specifically used in this project for decoding and encoding images in various formats.
14082

141-
8\. TODO
83+
6\. Build Instructions
84+
-----------------------
85+
86+
### Windows
87+
* Clone the source code using GitHub Desktop
88+
* You can install Github Desktop from: <https://desktop.github.com/>
89+
* Build Pocketsphinx
90+
* Install CMake from: <https://cmake.org/download/>
91+
* In the cloned project, locate the Pocketsphinx copy at `VoiceTuber/3rd-party/pocketsphinx`. Run the following commands in `cmd`:
92+
```
93+
cmake -S . -B build
94+
cmake --build build
95+
cmake --build build --target install -DCMAKE_INSTALL_PREFIX=bin
96+
```
97+
* Build libuv
98+
* Assume CMake is installed from the Pocketsphinx sections
99+
* In the cloned project, locate the libuv copy at `VoiceTuber/3rd-party/libuv`. Run the following commands in `cmd`:
100+
```
101+
$ mkdir -p build
102+
$ (cd build && cmake .. -DBUILD_TESTING=ON) # generate project with tests
103+
$ cmake --build build # add `-j <n>` with cmake >= 3.12
104+
```
105+
*
106+
* This steps will build Debug version of libuv, open generated `.sln` file from `VoiceTuber/3rd-party/libuv/libuv.sln` in Visual Studio
107+
* Switch Solution Configuration to Release
108+
* Build Solution with `Build/Build Solution` menu
109+
* Build the rest of the project
110+
* Open `VoiceTuber.sln` in Visual Studio 2022
111+
* Use the menu option `Build/Build Solution`
112+
### Linux
113+
* Install dependencies
114+
```
115+
sudo apt-get install -y clang pkg-config libsdl2-dev libuv1-dev git cmake
116+
```
117+
* Clone the app
118+
```
119+
git clone --recurse-submodules https://github.com/team-pp-studio/VoiceTuber.git
120+
```
121+
* Build Pocketsphinx
122+
```
123+
cd VoiceTuber/3rd-party/pocketsphinx
124+
cmake -S . -B build
125+
cmake --build build
126+
cmake --build build --target install
127+
cd ../../..
128+
```
129+
Last `cmake` command you may need to run with `sudo`.
130+
131+
* Clone and compile the build tool `coddle`
132+
```
133+
git clone https://github.com/coddle-cpp/coddle.git && cd coddle && ./build.sh
134+
```
135+
* Install `coddle`
136+
```
137+
sudo ./deploy.sh
138+
cd ..
139+
```
140+
* Build VoiceTuber
141+
```
142+
cd VoiceTuber && coddle
143+
```
144+
* Run the application
145+
```
146+
./VoiceTuber
147+
```
148+
7\. TODO
142149
--------
143150
Top Priority
144151
- [ ] the app crashes on Twitch chat with unstable Internet
145152
- [ ] implement mouth based on individual images instead of the sprite sheet
146153
- [ ] implement blink based on individual images
147-
- [x] highlight the chat if it is disconnected from the Internet
148-
- [x] allow limiting of frame rate
149-
- [x] better compatibility for multiple windows
150-
- [x] rotation slider
151-
- [x] Hotkeys infomation
152-
- [x] Physics breaks - cannot reproduce
154+
153155

154156
General Priority
155157
- [ ] remember directory in open/save dialog boxes
156158
- [ ] search for files in the dialog box
157-
- [x] Have a spalsh dialog simular as Blender one (Easier initial Project navigtion)
159+
158160
- [ ] Transition to/Add Softbody Phyics
159-
- [x] Azure TTS
160-
- [x] (feature) Easing the bounce with a filter, maybe add some 2nd-order filter
161-
to have overshooting
161+
162162
- [ ] (feature) support for transparency (Transparency for OBS so users will not need a green/blue background and can use all colors in the PNG model)
163163
- [ ] twitch extention (triggers for bits)
164164
- [ ] TikTok companion app
165165
- [ ] outdoor streaming from the phone wiht PNGTuber overlay
166166
- [ ] stream directly from VoiceTuber
167167

168168
Feedback
169-
- [X] We don't clear draws - known issue and according to internet it is Windows issue
170-
169+
171170
- [ ] Vale don't like tha they can select what mic is being used
172171
- [ ] Don't expect the placement of stuff (UI UX)
173172
- [ ] Swap description and value
@@ -184,9 +183,7 @@ Feedback
184183
it doesn't capture my mouse so it just highlighted the location
185184
box instead to show where my mouse is and the task bar shows
186185
what monitor I'm on)
187-
- [x] have it so you can enter a value for rotation instead of a
188-
slider... or at least a mouse tooltip that says "hold ctrl to
189-
enter value"
186+
190187
- [ ] different variations of bounce, I like the bounce but I really
191188
only want the bounce once when I start talking and resetting
192189
when I stop talking, hell it'd also be nice if I could customize
@@ -231,102 +228,17 @@ Completed
231228
- [X] REALLY WANTS CLICK AND DRAG - covered in TODO
232229
- [X] Drag and drop files into the software - coverd in TODO
233230
- [x] Really wants drag and drop files
234-
235-
9\. Unorgonized Ideas
236-
---------------------
237-
238-
- [ ] Puppeteer interface with keyboard and mouse
239-
- [ ] Puppeteer interfacing with the game controller
240-
- [ ] AI co-streamer
241-
242-
Channel Point/Bit/Chat Ideas.
243-
244-
Vtuber/chat tts affected
245-
1. Outfit change/hair style change (Vtuber)
246-
1.A outfit/change on chat tts
247-
1.B change vtubers/chat tts color (like a multiple or screen rgb/hex code.
248-
2. Mouth fall off
249-
3. Throw/fall objects at vtuber/chat
250-
4. Part of model grows or shrinks
251-
252-
Minigames
253-
1. Gacha outfit/asset (secret accessories to unlock via gacha)
254-
1.A claw machine (Credit idea to ValeofHearts)
255-
2. Take care of chat tts (tamagotchi)
256-
3. Chat duel?
257-
4. Guess the amount (how much is in the jar)
258-
5.* FISHING MINIGAME (I have no idea, but fishing minigame)
259-
6.* COOKING/BAKING MINIGAME (Wichit loves cooking minigames.)
260-
261-
extension necessary ideas
262-
* - items from previous list that may or may not benefit from this
263-
264-
1. Draw the streamer a asset or shirt decal in browser. (will be approved by the streamer before being uploaded.)
265-
2. Move the vtuber or chat tts anywhere on the screen.
266-
267-
10\. Build Instructions
268-
-----------------------
269-
270-
### Windows
271-
* Clone the source code using GitHub Desktop
272-
* You can install Github Desktop from: <https://desktop.github.com/>
273-
* Build Pocketsphinx
274-
* Install CMake from: <https://cmake.org/download/>
275-
* In the cloned project, locate the Pocketsphinx copy at `VoiceTuber/3rd-party/pocketsphinx`. Run the following commands in `cmd`:
276-
```
277-
cmake -S . -B build
278-
cmake --build build
279-
cmake --build build --target install -DCMAKE_INSTALL_PREFIX=bin
280-
```
281-
* Build libuv
282-
* Assume CMake is installed from the Pocketsphinx sections
283-
* In the cloned project, locate the libuv copy at `VoiceTuber/3rd-party/libuv`. Run the following commands in `cmd`:
284-
```
285-
$ mkdir -p build
286-
$ (cd build && cmake .. -DBUILD_TESTING=ON) # generate project with tests
287-
$ cmake --build build # add `-j <n>` with cmake >= 3.12
288-
```
289-
*
290-
* This steps will build Debug version of libuv, open generated `.sln` file from `VoiceTuber/3rd-party/libuv/libuv.sln` in Visual Studio
291-
* Switch Solution Configuration to Release
292-
* Build Solution with `Build/Build Solution` menu
293-
* Build the rest of the project
294-
* Open `VoiceTuber.sln` in Visual Studio 2022
295-
* Use the menu option `Build/Build Solution`
296-
### Linux
297-
* Install dependencies
298-
```
299-
sudo apt-get install -y clang pkg-config libsdl2-dev libuv1-dev git cmake
300-
```
301-
* Clone the app
302-
```
303-
git clone --recurse-submodules https://github.com/team-pp-studio/VoiceTuber.git
304-
```
305-
* Build Pocketsphinx
306-
```
307-
cd VoiceTuber/3rd-party/pocketsphinx
308-
cmake -S . -B build
309-
cmake --build build
310-
cmake --build build --target install
311-
cd ../../..
312-
```
313-
Last `cmake` command you may need to run with `sudo`.
314-
315-
* Clone and compile the build tool `coddle`
316-
```
317-
git clone https://github.com/coddle-cpp/coddle.git && cd coddle && ./build.sh
318-
```
319-
* Install `coddle`
320-
```
321-
sudo ./deploy.sh
322-
cd ..
323-
```
324-
* Build VoiceTuber
325-
```
326-
cd VoiceTuber && coddle
327-
```
328-
* Run the application
329-
```
330-
./VoiceTuber
331-
```
332-
231+
- [x] highlight the chat if it is disconnected from the Internet
232+
- [x] allow limiting of frame rate
233+
- [x] better compatibility for multiple windows
234+
- [x] rotation slider
235+
- [x] Hotkeys infomation
236+
- [x] Physics breaks - cannot reproduce
237+
- [x] have it so you can enter a value for rotation instead of a
238+
slider... or at least a mouse tooltip that says "hold ctrl to
239+
enter value"
240+
- [X] We don't clear draws - known issue and according to internet it is Windows issue
241+
- [x] Azure TTS
242+
- [x] (feature) Easing the bounce with a filter, maybe add some 2nd-order filter
243+
to have overshooting
244+
- [x] Have a spalsh dialog simular as Blender one (Easier initial Project navigtion)

0 commit comments

Comments
 (0)