lerxstrulz Posted November 27, 2016 Report Posted November 27, 2016 (edited) VERSION 3 NOW AVAILABLE! TKTalkie is a DIY voice effects project that you can build. Version 2 of the TKTalkie software has been released with some significant improvements. The goal of this release was to allow you to be able to configure and tweak settings WITHOUT having to edit and recompile the source code. Added support for text config file that holds all settings. Added serial interface that lets you LIVE edit settings so you can test in real-time. You can save and load different config settings files, allowing you to create custom configs for different applications of TKTalkie. Added Calibration Wizard that helps you find optimum settings for Voice Activation. Added support for background (chatter) loop. Version 2 source code is here. If you are using Version 1, see how to upgrade. Original Whitearmor.net topic is here. Visit www.TkTalkie.com for more information including tutorials! UPDATE: Version 2.2 has been released with some additions! Please go to www.tktalkie.com for updated code and the new tutorial. Edited April 25, 2017 by lerxstrulz 4 Quote
Darkpain714[TK] Posted November 27, 2016 Report Posted November 27, 2016 Can't wait to play with this! Sent from my SM-G930V using Tapatalk Quote
lerxstrulz Posted November 27, 2016 Author Report Posted November 27, 2016 The background loop I'm using is the Stormtrooper one from Finger Chilli located here. Quote
TanRu[TK] Posted November 30, 2016 Report Posted November 30, 2016 This is perfect timing. I just started my TK build so I was checking out the different systems. Your comparison chart is great. I ordered my TK Talkie parts and should be building soon! 1 Quote
Airborne Trooper[501st] Posted December 2, 2016 Report Posted December 2, 2016 I FINALLY ordered my kit and hope to have it next week. Looking forward to the added capabilities and less room taken up inside my helmet by the iCOMM. I run everything inside my helmet minus the power supply so space is at a premium. Quote
Airborne Trooper[501st] Posted December 2, 2016 Report Posted December 2, 2016 Anyone with a 3d printer offering cases? Quote
JohnDoe2000 Posted December 3, 2016 Report Posted December 3, 2016 Hi all, the project is very cool. I have all the parts connected / soldered them but cannot handle the massive feedback problem (Version 1.1 or 2: no difference). I want to have all parts in the helmet and would like to install the speaker (it's not a aker speaker) in the chin. I played with the parameters (eg. mic gain) without success. Do you have any ideas to eliminate the feedback? I also tries to isolate the speaker with foam material. In my opinion this had no effect. Anyone installed all parts in the helmet? Any advice is welcome. Quote
TanRu[TK] Posted December 3, 2016 Report Posted December 3, 2016 (edited) I got my v2 assembled and working, with one issue: when I save my settings, it appends them to the settings file instead of replacing. This causes the whole thing to fail when I reboot. (I just hear kind of a flanged droning sound and no mic input is processed.) I was able to reproduce this repeatedly. Thanks for working on this project. I love how configurable it is. Original config file: # TKTALKIE v2.0 # These are the default settings! Please visit TkTalkie.com # to see how to modify for your setup. # sound to play when TKTalkie is started [startup=STARTUP.WAV] # chatter loop settings [loop=CHATTER.WAV] # 0 to 32767, 1 is pass-thru, below 1 attenuates signal [loop_gain=7] # VOICE ACTIVATION SETTINGS [silence_time=350] [voice_start=0.35] [voice_stop=0.02] # PTT (Push-To-Talk) SETTINGS [button_pin=2] [button_click=BUTTON.WAV] # 0 to 32767, 1 is pass-thru, below 1 attenuates signal [button_gain=1] # MICROPHONE/LINE-IN SETTINGS # input settings (0 = microphone, 1 = line-in) [input=0] # 0 to 63 [mic_gain=15] # SOUND EFFECTS (STATIC BURSTS, ETC.) # 0 to 32767, 1 is pass-thru, below 1 attenuates signal [effects_gain=5] # EQUALIZER SETTINGS # 0 = flat (none, 1 = parametric, 2 = bass/treble, 3 = graphic [eq=3] # for parametric/graphic = 5 bands, for bass/treble = 3 bands # bands are low to high: -1 (-11.75dB to 1 +12dB) [eq_bands=-1,0,1,0,-1] # VOICE SETTINGS # 0 to 32767, 1 is pass-thru, below 1 attenuates signal [voice_gain=1] # BITCRUSHER SETTINGS - VOCAL EFFECTS # Format = bits1,rate1,bits2,rate2 # Set to 16,41000,16,41000 to just pass-thru (disable) [bitcrushers=12,16384,10,10240] # PINK NOISE GENERATOR # 0 to 32767, 1 is pass-thru, below 1 attenuates signal [noise_gain=1] # Turn debug messages on/off (1/0) [debug=0] After making a change and using "save" command: # TKTALKIE v2.0 # These are the default settings! Please visit TkTalkie.com # to see how to modify for your setup. # sound to play when TKTalkie is started [startup=STARTUP.WAV] # chatter loop settings [loop=CHATTER.WAV] # 0 to 32767, 1 is pass-thru, below 1 attenuates signal [loop_gain=7] # VOICE ACTIVATION SETTINGS [silence_time=350] [voice_start=0.35] [voice_stop=0.02] # PTT (Push-To-Talk) SETTINGS [button_pin=2] [button_click=BUTTON.WAV] # 0 to 32767, 1 is pass-thru, below 1 attenuates signal [button_gain=1] # MICROPHONE/LINE-IN SETTINGS # input settings (0 = microphone, 1 = line-in) [input=0] # 0 to 63 [mic_gain=15] # SOUND EFFECTS (STATIC BURSTS, ETC.) # 0 to 32767, 1 is pass-thru, below 1 attenuates signal [effects_gain=5] # EQUALIZER SETTINGS # 0 = flat (none, 1 = parametric, 2 = bass/treble, 3 = graphic [eq=3] # for parametric/graphic = 5 bands, for bass/treble = 3 bands # bands are low to high: -1 (-11.75dB to 1 +12dB) [eq_bands=-1,0,1,0,-1] # VOICE SETTINGS # 0 to 32767, 1 is pass-thru, below 1 attenuates signal [voice_gain=1] # BITCRUSHER SETTINGS - VOCAL EFFECTS # Format = bits1,rate1,bits2,rate2 # Set to 16,41000,16,41000 to just pass-thru (disable) [bitcrushers=12,16384,10,10240] # PINK NOISE GENERATOR # 0 to 32767, 1 is pass-thru, below 1 attenuates signal [noise_gain=1] # Turn debug messages on/off (1/0) [debug=0] # sound to play when TKTalkie is started [startup=STARTUP.WAV] # chatter loop settings [loop=CHATTER.WAV] # 0 to 32767, 1 is pass-thru, below 1 attenuates signal [loop_gain=7.0000] # VOICE ACTIVATION SETTINGS [silence_time=350] [voice_start=0.3500] [voice_stop= 0.020] # PTT (Push-To-Talk) SETTINGS [button_pin=2] [button_click=BUTTON.WAV] # 0 to 32767, 1 is pass-thru, below 1 attenuates signal [button_gain=1.0000] # MICROPHONE/LINE-IN SETTINGS # input settings (0 = microphone, 1 = line-in) [input=1] # 0 to 63 [mic_gain=15] # SOUND EFFECTS (STATIC BURSTS, ETC.) # 0 to 32767, 1 is pass-thru, below 1 attenuates signal [effects_gain=5.0000] # EQUALIZER SETTINGS # 0 = flat (none, 1 = parametric, 2 = bass/treble, 3 = graphic [eq=3] # for parametric/graphic = 5 bands, for bass/treble = 3 bands # bands are low to high: -1 (-11.75dB to 1 +12dB) [eq_bands=-1.00,0.00,1.00,0.00,-1.00,0.00] # VOICE SETTINGS # 0 to 32767, 1 is pass-thru, below 1 attenuates signal [voice_gain=5.0000] # BITCRUSHER SETTINGS - VOCAL EFFECTS # Format = bits1,rate1,bits2,rate2 # Set to 16,41000,16,41000 to just pass-thru (disable) [bitcrushers=12,16384,10,10240] # PINK NOISE GENERATOR # 0 to 32767, 1 is pass-thru, below 1 attenuates signal [noise_gain=1.0000] Edited December 3, 2016 by TanRu Quote
TanRu[TK] Posted December 3, 2016 Report Posted December 3, 2016 I made a quick change to the code to check if the file exists (and blow it away if it does), but there's still something funky with the format being written and the app doesn't read it properly. File openFile(String filename, int mode) { char buf[filename.length()+2]; filename.toCharArray(buf, filename.length()+2); if(mode == FILE_WRITE){ if(SD.exists(buf)){ SD.remove(buf); } } return SD.open(buf, mode); } Quote
Airborne Trooper[501st] Posted December 4, 2016 Report Posted December 4, 2016 I got the v2 case printed thru 3D hubs for $13. Not bad. Looking forward to getting everything in the mail this week. This will be installed in my helmet and used with my hovi tip speakers. Quote
TanRu[TK] Posted December 6, 2016 Report Posted December 6, 2016 What size screws should we use to mount the board to the case? Quote
Airborne Trooper[501st] Posted December 7, 2016 Report Posted December 7, 2016 I used 3.5 HDD screws I had laying around at work. Just had to drill the holes a tad larger. <br><br> The problem I have right now is I can hardly hear it coming out my hovi tip speakers. I'm not sure if it's because I still have the teensy plugged into my laptop for power or there's something in the settings. My mic is plugged into 3.5mm I added on the teensy. On board out is connected mic on Ukswrath's amp2, and hovi connected to speaker on amp 2. The teensy volume is turned all the way as well as amp2. Quote
TanRu[TK] Posted December 7, 2016 Report Posted December 7, 2016 (edited) Make sure you used a mono 3.5mm Jack and not stereo? <br><br> Adjust all the _gain settings in the config. Edited December 7, 2016 by TanRu Quote
lerxstrulz Posted December 8, 2016 Author Report Posted December 8, 2016 Hi all, the project is very cool. I have all the parts connected / soldered them but cannot handle the massive feedback problem (Version 1.1 or 2: no difference). I want to have all parts in the helmet and would like to install the speaker (it's not a aker speaker) in the chin. I played with the parameters (eg. mic gain) without success. Do you have any ideas to eliminate the feedback? I also tries to isolate the speaker with foam material. In my opinion this had no effect. Anyone installed all parts in the helmet? Any advice is welcome. Eek no...I have a wireless mic in my helmet and everything else behind the chestplate (incl Aker.) At first I got really bad feedback when I cranked up the Aker and after messing around with settings realized the mic gain was way too high at the default 36 and tuned it to 15 and now I can crank the speaker pretty loud. If you are putting everything in the helmet, you may also need to insulate the TKTalkie board. If you will post or PM your config file I'll take a look at the settings and see if there is anything to tweak. Also, don't forget you can tweak settings on-the-fly with the serial interface in V2, so it may help to hook everything up and play with settings in real-time. Quote
lerxstrulz Posted December 8, 2016 Author Report Posted December 8, 2016 Anyone with a 3d printer offering cases? I have a printer but am still tweaking it. You can find online services that can print from the .stl, but hopefully I will be able to offer them through the website soon. Quote
lerxstrulz Posted December 8, 2016 Author Report Posted December 8, 2016 I made a quick change to the code to check if the file exists (and blow it away if it does), but there's still something funky with the format being written and the app doesn't read it properly. File openFile(String filename, int mode) { char buf[filename.length()+2]; filename.toCharArray(buf, filename.length()+2); if(mode == FILE_WRITE){ if(SD.exists(buf)){ SD.remove(buf); } } return SD.open(buf, mode); } Oops hey yeah thanks for that! I actually have that added but didn't get committed to the repo... Can you post or PM what your file looks like after saving? Quote
TanRu[TK] Posted December 8, 2016 Report Posted December 8, 2016 Oops hey yeah thanks for that! I actually have that added but didn't get committed to the repo... Can you post or PM what your file looks like after saving? I'll have to hook everything back up when I get home, but I believe it looks like the second half of the file I posted above above, starting with the second instance of "#sound to play...". Quote
lerxstrulz Posted December 8, 2016 Author Report Posted December 8, 2016 I used 3.5 HDD screws I had laying around at work. Just had to drill the holes a tad larger. <br><br> The problem I have right now is I can hardly hear it coming out my hovi tip speakers. I'm not sure if it's because I still have the teensy plugged into my laptop for power or there's something in the settings. My mic is plugged into 3.5mm I added on the teensy. On board out is connected mic on Ukswrath's amp2, and hovi connected to speaker on amp 2. The teensy volume is turned all the way as well as amp2. I noticed on my first build that the thumb (volume) pot did not work properly. I doubled checked all the solder points and they were fine. In the V2 software you can directly override the input from the volume pot, so maybe try setting the volume there to see if the volume pot is maybe not working correctly. The setting is: [volume=n] // 0.0 to 1.0 You can also set the gain on the effects (effects_gain) and voice (voice_gain) channels (0 to 32767). 1 = pass thru, < 1 attenuates (mutes) and > 1 boosts Quote
lerxstrulz Posted December 8, 2016 Author Report Posted December 8, 2016 I'll have to hook everything back up when I get home, but I believe it looks like the second half of the file I posted above above, starting with the second instance of "#sound to play...". Ok I will copy that and try it later this eve as well. One thing I noticed is there is a space for [voice_stop= 0.020] That might be causing it. Try adding this to the beginning of the parseSetting function: settingName = settingName.trim(); settingValue = settingValue.trim(); I won't be able to test this until later tonight, though. Quote
Airborne Trooper[501st] Posted December 8, 2016 Report Posted December 8, 2016 I'm in the middle of a house move so hopefully in a week I'll have my workspace set back up. I think the volume knob may be the issue or I'll have to cave and start using a Anker speaker instead of hovi tip speakers. Quote
lerxstrulz Posted December 8, 2016 Author Report Posted December 8, 2016 I'm in the middle of a house move so hopefully in a week I'll have my workspace set back up. I think the volume knob may be the issue or I'll have to cave and start using a Anker speaker instead of hovi tip speakers. In v1 and v1.1 the input channels for voice and effects are heavily attenuated (muted). Once you are set back up I bet you can get those channels pretty loud by pushing them over 1 (limit is 32767). You will prob have to lower mic gain to compensate for the extra levels to avoid feedback, but I bet you can get it all pushed up pretty loud for the Hovis. Quote
lerxstrulz Posted December 8, 2016 Author Report Posted December 8, 2016 I made a quick change to the code to check if the file exists (and blow it away if it does), but there's still something funky with the format being written and the app doesn't read it properly. File openFile(String filename, int mode) { char buf[filename.length()+2]; filename.toCharArray(buf, filename.length()+2); if(mode == FILE_WRITE){ if(SD.exists(buf)){ SD.remove(buf); } } return SD.open(buf, mode); } Ok I posted a code update that fixed a the file save issue (credited in code) and another issue regarding the background loop restarting too soon. It is able to read the saved file and parse it ok. Let me know if this update does not fix your problem. 1 Quote
r2db[501st] Posted December 11, 2016 Report Posted December 11, 2016 I am working on building my own Aker-style unit that, like the Icomm combo, will power the TKTalkie from the speaker unit. The amplifier that I am using has an output enable pin that when grounded shuts down the amp to conserve power, so I am trying to figure out a way to have the TKTalkie code set that pin to ground when no audio is playing and then set it high just prior to calling to play a file or sending some mic output through. Second, the power boost converter I am using to step up the 3.7V lithium cells to 5V has a low battery output, that I am sending to the TKTalkie so that it will play a "LOWBATT.wav" file to alert you if your about to have a "bad comm" situation. I will post some code later. 1 Quote
Airborne Trooper[501st] Posted December 12, 2016 Report Posted December 12, 2016 So cool seeing things people come up with. In v1 and v1.1 the input channels for voice and effects are heavily attenuated (muted). Once you are set back up I bet you can get those channels pretty loud by pushing them over 1 (limit is 32767). You will prob have to lower mic gain to compensate for the extra levels to avoid feedback, but I bet you can get it all pushed up pretty loud for the Hovis. I have v2 installed and I noticed I can change all the settings. Just need the time. We are slowly moving a mile down the road and should be done by the weekend hopefully! One thing I noticed when I did play with it, is there a way to confirm the teensy is using the text file settings instead of the compiled code? Quote
lerxstrulz Posted December 12, 2016 Author Report Posted December 12, 2016 I am working on building my own Aker-style unit that, like the Icomm combo, will power the TKTalkie from the speaker unit. The amplifier that I am using has an output enable pin that when grounded shuts down the amp to conserve power, so I am trying to figure out a way to have the TKTalkie code set that pin to ground when no audio is playing and then set it high just prior to calling to play a file or sending some mic output through. Very cool! You should be able to piggyback this in the VoiceOn() and VoiceOff() functions. Just assign the pin in setup() (you may need to set it to HIGH as well to activate it), then you should be able to send HIGH in VoiceOn() and LOW in VoiceOff(). It "may" cause a pop when you turn it on and off, but that would be a cool effect IMO. Second, the power boost converter I am using to step up the 3.7V lithium cells to 5V has a low battery output, that I am sending to the TKTalkie so that it will play a "LOWBATT.wav" file to alert you if your about to have a "bad comm" situation. Awesome! Can't wait to see it! Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.