Android-baserad Vintage telefon (6 / 7 steg)
Steg 6: Skriva programvara
Huvudsakliga komponenter
CMU Sphinx är ett open source projekt röst erkännande underhålls av Carnegie Mellon University. Systemet består av två delar: recognizer kod och filer med röst och språk modellen. Det var lätt att kompilera bibliotek kod för Android. Det är ett bra exempel postat av CMU Sphinx skaparna. Man kan lära CMU Sphinx egna uttal. Allt man har att göra är att spela in 20 meningar och köra genererade filer tanken ett medföljande verktyg. Detta kan avsevärt öka tolkningskvalitet. Dessutom kan man bygga en språkmodell. Detta skulle i princip tala recognizer vad ord och fraser som väntar. I mitt fall var en primär fras "samtal namn", där namn är ett av namnen från min adressbok. Att ha sådan modell ökar också tolkningskvalitet.
Man kan fråga: Varför inte använda Google Voice? Tyvärr, det är verkligen dålig på att förstå mitt uttal. Och det också inte så bra på att känna igen namnen.
Man kan fråga: Varför inte använda speciell micro controller? Jag har verkligen övervägt detta tillvägagångssätt. En lösning jag hittade var sensorisk. Det såg tyvärr för dyrt. Tja, verkade det som jag skulle behöva göra samma mängd arbete, som med CMU Sphinx och det kommer att resultera i jämförbar kvalitet, men jag skulle behöva betala för chip.
"Inga tal generator" – jag var mycket övertygad i detta efter att ha provat flera olika generatorer. Alla tal-motorer skapade en mycket un-naturlig röst. Så, jag var tvungen att be en människa att registrera alla fraser som möjligen kan tala om min telefon. Dessutom hade jag henne läsa varje fras flera tid. Under uppspelning plocka jag en random version av frasen; Detta skapar en stark illusion av en verklig människa i andra änden.
PJSIP – är en öppen källkod genomförandet av SIP-stacken. Med andra ord, är det öppet VoIP bibliotek. Hade jag mycket problem med det: hämtade, sammanställt och använde den. CSipSimple är ett stort projekt öppen källkod som också använder den. Detta projekt mycket användbar, eftersom den innehöll några exempel stor användning.
Man kan fråga: Varför inte använda Skype? Detta var min ursprungliga idé. Jag har prenumererat på Skype Developer Program. Tyvärr läsa licensavtalet avslöjade att Skype SDK inte kan installeras på alla enheter som kontrolleras av Android.
Man kan fråga: Varför inte SIP stack som är inbyggt i Android? Tyvärr har lagts till stacken endast i Android 2.3. Archos 28 kör 2.2.
Arbetsflöde
När telefon är undan:
- Vänta en sekund
- Säger "Nummer, snälla!"
- Starta röstigenkänning
- Om "Ring namn", gå till nästa, annars säger "Tyvärr, jag inte fick det" och gå till 3
- Säga "Calling namn..."
- Starta röstigenkänning
- Om erkända "nej" eller "sluta" gå till 2, annars gå till nästa
- Placera ett VoIP-samtal
- Säga "Ring placerade"
- Vänta tills samtalet avslutas
- Säga "Ring upp"
När samtal tas emot avsluta ring på klockan och vänta tills antingen telefon plockas upp, eller andra änden ett samtal eller 20 sekunder pass. Ring på klockan med en sekunders intervall.
Android App Format
Telefon ansökan är faktiskt en bakgrundstjänst. Det finns också en light-väntan program som visar aktuell status. Tjänsterna som startar på app startup eller på användaren app lanseringen.
Var du hittar källa
All kod som jag skrev kan hittas på google code. Du måste också hämta och kompilera PJSIP och CMU Sphinx.