Comments (23)
https://xd.adobe.com/view/628227f4-05fd-46f1-548c-83a661b5e7e3-14b3/
Here is the 2nd version.
from undebate.
I really like the transcription tab, i feel like it uses our website real estate very efficiently and effectively.
from undebate.
After a candidate has recorded a video, take the video and use some natural language transcription service and translate the speech into text with timestamps, and then attach the data to the database document for that participant. What service, we are looking for your recommendation - but hopefully one that free, or free at low volume, etc - you get the idea. But accuracy is important.
If google, use something like this: https://cloud.google.com/speech-to-text/docs/async-time-offsets
so that we get the timestamps of the words, so that we can play them back with the video.
app/api/create-participant.js is what gets called when the browser is submitting the recordings of a new participant.
An iota record for a participant look like this:
{
"_id": {
"$oid": "5d65a6b877fff400177d50ed"
},
"parentId": "5d6350b0e7179a084ef376b9",
"subject": "Participant:School Board Candidate Conversation - Candidate Conversation",
"description": "A participant in the following discussion:A prototype Candidate Conversation for schoolboard",
"component": {
"component": "MergeParticipants",
"participant": {
"speaking": [
"https://res.cloudinary.com/hf6mryjpf/video/upload/v1566942893/5d5dc697d32514001766ca87-1-speaking20190827T215452394Z.webm",
"https://res.cloudinary.com/hf6mryjpf/video/upload/v1566942898/5d5dc697d32514001766ca87-2-speaking20190827T215455964Z.webm",
"https://res.cloudinary.com/hf6mryjpf/video/upload/v1566942903/5d5dc697d32514001766ca87-3-speaking20190827T215503161Z.webm"
],
"name": "Will",
"listening": "https://res.cloudinary.com/hf6mryjpf/video/upload/v1566942901/5d5dc697d32514001766ca87-2-nextUp20190827T215500659Z.webm"
}
},
"userId": "5d5dc697d32514001766ca87"
}
So implement something like speechToText of a videoURL
obj.component.participant.speaking.forEach(videoURL=>{
text=speechToText(videoURL);
obj.component.participant.speechToText.push(text)
}
from undebate.
@epg323 : Please provide a quick update in the comment section with below 4 key points before today's meeting for us to review:
- Progress
- Challenges / road blocks
- Expected completion date
- Availability during the week
from undebate.
- Created some api keys on gcloud for the transcribing.
- Corona virus created a lot of chaos. Will be working remotely the next few weeks.
- I should be finished no later than this Friday.
- I should be available all day this week after 8 am.
from undebate.
Update from 03/16 standup: Issue implementation is expected to complete by 03/20.
from undebate.
03/25: Poorna to check with Esaul about the implementation status. Also, check if he wants to pair program with DJ for this case.
from undebate.
https://www.npmjs.com/package/handbrake-js
from undebate.
Pretty busy right now. Might be better, if you pass this task to someone else. I am still willing to take on smaller tasks, to remain involved with the project.
from undebate.
@epg323 check out https://github.com/EnCiv/smpreview
from undebate.
05/20:
Created transcription schema.
Need to work on making API col upon recording.
Have to work with UI designer for integration.
To be complete by 05/27.
from undebate.
https://xd.adobe.com/view/31159d3e-8ed2-4966-416b-b234103484d0-4724/
Hi. Here is the first version of the layout. There are more details about the transcription part. Should I go over it with Luis? BTW, this is a clickable prototype. Feel free to contact me with further questions.
from undebate.
05/27: To be made available by 05/28 2.00p.m Pacific time.
from undebate.
David and @epg323 to meet tomorrow
from undebate.
06/10: Backend is ready. Now working on front end. We will create a separate task for front end related activities.
List the components in here as Task for us to ease our tracking - @epg323
-
Support for multiple speech segments
-
Design review to be done
from undebate.
06/17:
Dana is going to review and provide a feedback
We need a separate ticket for front end related activities - Esaul @epg323
from undebate.
06/24: Esaul @epg323 to meet with David @ddfridley to discuss on how to merge iota records transcription into viewer.
from undebate.
07/01: This is ready for testing. Need to be merged after testing by David @ddfridley.
Delayed API to be investigated for long term @epg323
from undebate.
07/08: We found an issue with google transcription for video with length longer than 1min. Need to work on other option Cloudinary or 5min limit stream with google (string).
from undebate.
@epg323 and I had a meeting last Thursday 07/09 to discuss his current blocker on this ticket.
He was able to get Cloudinary to do the transcription automatically when the video is initially uploaded using the Google Transcription add-on, but he was having issues reading the file returned from Cloudinary, which is a .transcript
file.
Turns out this is really just JSON with a custom extension, and the following script will download the JSON data and log it to the console.
const superagent = require('superagent')
const url =
'https://res.cloudinary.com/hrewc5ehd/raw/upload/v1594686544/5ebda7b58fb38e3ccbeff667-0-speaking20200714T002902197Z.transcript'
superagent
.get(url)
.then(res => {
let data = ''
res.on('data', chunk => {
data += chunk
})
res.on('end', async () => {
console.log(JSON.parse(data))
})
})
.catch(err => console.log('Error: ' + err))
>>>
[
{
confidence: 0.8742577433586121,
transcript: 'Testing testing one two, three, testing testing one, two three.',
words: [
[Object], [Object],
[Object], [Object],
[Object], [Object],
[Object], [Object],
[Object], [Object]
]
}
]
Esaul said this was his only blocker so hopefully this will help to unblock him. I'm happy to schedule another meeting to discuss next steps if needed.
from undebate.
07/15: Dana has done the front end refactoring transcribe-frontend. google transcription you get double the Cloudinary free video transcription. google streaming is to be verified for 5min. Work on both options and decision can me made at later stage.
Process flow for Cloudinary:
@epg323 Please update process followed
Process flow of Google streaming:
@epg323 Please update process followed
DJ and Esaul to pair program to fix this issue.
@epg323 Please update process followed in Cloudinary and google streaming.
from undebate.
@epg323 and I just took a look at the Cloudinary transcription issue he is having.
We verified that we are correctly generating the URL for the .transcript
file, but it appears that when a .transcript
file first appears on Cloudinary, we get a 404 error when we try to download it. We are not sure if this is because of some inherent lag in the time it takes for Cloudinary to get the .transcript
file back from Google, or if there is some bug on their end, so Esaul is going to write up a message to send to Cloudinary to get some feedback from their support team.
In the meantime, Esaul is going to move forward with the Google Streaming API until we can get support from Cloudinary. I will do the same for #226 if we do not hear back Cloudinary quickly.
from undebate.
07/22: This is working using google streaming. Move to testing.
from undebate.
Related Issues (20)
- UI/UX for alerting candidate that there is no audio HOT 4
- Recorder Instructions as React Component HOT 6
- Hangup still hears playback
- Hangup Button HOT 3
- Investigate using Google Civic Information API HOT 1
- Iframe for address lookup then candidate conversation
- Record Landscape Video while in Portrait Mode on Smartphone
- Candidate Lookup Page
- Load balancing on heroku HOT 1
- Prev Speaker, Prev Section shouldn't be active
- "Sitting there" recording task
- Candidate video showed twice
- Self-service Portal for Election Leaders to Create Undebates for their Election HOT 6
- customer recorder invite must use specified email HOT 2
- Rerecord countdown confusion
- Retry upload if error
- undebate creator doesn't put listening in the right spot
- Feedback function in footer.
- Portrait Mode header messed up
- Bad experience when PC doesn't have GPU
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from undebate.