| Linkblock
| |
|
|
Die MBSLK.de-Foren » » HiFi und Telecom
HiFi und Telecom » » Thema: Lösung: APS 30 / TrafficPro stimmen austauschen |
Beitrag von:
User existiert nicht mehr bei MBSLK.de | Geschrieben am 24.07.2003 um 23:04 Uhr  
| [ Beitrag wurde zuletzt editiert von embe am 24.07.2003 um 23:14 Uhr ]
Hallo,
ich habe mich gestern Abend mal versucht ein wenig C zu häkeln und in Sachen Stimmen bei den Navis von APS30 (und TP) was zu verändern.
Das Programm soll in der Version 1.0 erlauben, Stimmdateien vom TP im APS30 zu benutzen. ich habe auch schon eine Idee, wie man ganz eigene Stimmen einbauen kann.
Wer mag, kann am Programm gerne weiter coden, oder mir Tipps geben, da ich von C eigentlich keine Ahnung habe. Ich dachte mir, daß sowas dann sowhl unter Linux wie unter Windows läuft. Mangels Compiler für Windows habe ich's unter linux entwickelt und getestet.
Das Programm macht zwar noch nicht richtig viel, außer die Stimmen zu trennen, ist aber mal ein Anfang. In PHP oder perl oder so wäre's halt noch langsamer, obwohl ich mir auch eine web-Variante auch vorstellen könnte. (Click Dir Dein Stimm-File im WWW zusammen und brenn's auf CD...) .
Compiliert habe ich es unter Linux mittels:
gcc aps30-tp-tool.c -o aps30-tp-tool
Bitte gebt mir Feedback, ob es neben mir überhaupt jmd. interessiert, andere Stimmen im APS30 (oder TP) zu haben.
Gruß,
Martin
PS.: Ach ja: Der Code ist noch sooo simpel, daß eine inline Doku (noch) nicht dabei ist. Naja: It was hard to write, so it should be hard to read.
Anbei der Code:
/*
aps30-tp-tool.c: splits voice-file-container of
APS30 V. 6.0 & Becker TP into
seperate voice files
author: Martin Bronk, Frankfurt, Germany
(mail: Martin_AT_Bronk.de)
version 0.1.1 (2003-07-23):
- more header infos (dir count et al.)
- tested with Becker TP 6.0
version 0.1 (2003-07-22):
Initial release.
*/
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
struct sp_header
{
unsigned long dir_start;
unsigned long unknown1;
unsigned long unknown2;
unsigned long dir_count;
unsigned long unknown3;
char DBID [4];
char free1 [8];
char version_text [512];
};
struct sp_entry
{
unsigned long file_start;
unsigned long file_size;
char file_name [24];
unsigned long unknown;
};
void usage(char* argv0)
{
printf("Usage: %s [options] <voicefile>n", argv0);
exit(1);
}
void read_header(FILE *myfile,struct sp_header *myheader)
{
if (fseek(myfile,0,SEEK_SET)) perror("fileseek:"
fread(myheader,sizeof(struct sp_header),1,myfile);
return;
}
void read_entry(FILE *myfile,unsigned long fpos, struct sp_entry *myentry)
{
if (fseek(myfile,fpos,SEEK_SET)) perror("fileseek:"
fread(myentry,sizeof(struct sp_entry),1,myfile);
return;
}
void extract_file(FILE *myfile, struct sp_entry *sp)
{
char *buffer;
FILE *out_file;
if (!(buffer = (char *) malloc(sp->file_size*sizeof(char)))) {
printf("Can't allocate memoryn"
exit(1);
}
if (fseek(myfile,sp->file_start,SEEK_SET)) perror("fileseek:"
fread(buffer, sp->file_size,1,myfile);
out_file=fopen(sp->file_name,"w"
if (out_file == NULL) perror("fileopen:"
fwrite(buffer,sp->file_size,1,out_file);
fclose(out_file);
free(buffer);
}
main(int argc, char *argv[])
{
int dir_count;
FILE *input_file;
struct sp_header *header;
struct sp_entry *sp;
if (!(header = (struct sp_header*) malloc(sizeof(struct sp_header)))) {
printf("Can't allocate memoryn"
exit(1);
}
if (!(sp = (struct sp_entry*) malloc(sizeof(struct sp_entry)))) {
printf("Can't allocate memoryn"
exit(1);
}
printf("nn unmerge: splits aps30 and becker speech filen"
printf("n"
if (argc!=2) usage(argv[0]);
input_file=fopen(argv[1],"r"
if (input_file == NULL) perror("fileopen:"
read_header(input_file,header);
printf("DIR starts at: %xnn",header->dir_start);
printf("Nr start filename sizen"
dir_count=0;
while (1) {
read_entry(input_file,header->dir_start+(dir_count*sizeof(struct sp_entry)),sp);
if (sp->file_name[0]==0) break;
dir_count++;
printf("%2u: %8x %-24s %un",dir_count,sp->file_start,sp->file_name);
extract_file(input_file,sp);
}
printf("n%u files expected.n",header->dir_count);
printf("%u files found.nn",dir_count);
printf("DBID: %snn",header->DBID);
printf("Fileinfo:n%sn",header->version_text);
fclose(input_file);
free(header);
free(sp);
}
--
--
There are 10 types of people in the world: those who know binary and those who don't. | Antworten
Antworten mit Zitat
Moderatoren-Team informieren Themen-Abo bestellen |
| |
Beitrag von:
User existiert nicht mehr bei MBSLK.de | | | Affiliate-Anzeigen:
|
| |
Beitrag von:
User existiert nicht mehr bei MBSLK.de | | |
Beitrag von:
User existiert nicht mehr bei MBSLK.de | Geschrieben am 06.10.2003 um 19:49 Uhr  
| Ich habe keinerlei Resonanz auf mein Posting bekommen, aber mittlerweile ist das Programm soweit ziemlich brauchbar. Es fehlt eigentlich nur noch die Funktion, daß die aufgesplitteten Dateien wieder zusammengefügt werden - ein Klacks. Das Dateiformat innerhalb der Datei habe ich soweit auch entschlüsselt.
Aber nun mache ich nix mehr dran, ich habe mir eine VDO-Navigation mit TFT Schirm gekauft, da sehe ich dann auch die Route auf einer Karte, ein Feature, das prinzipbedingt beim APS30 nicht drin ist.
Wenn jmd. doch noch Interesse haben sollte, gebe ich den Code gerne raus, helfe auch, das Programm fertig zu machen. Im Moment brauche ich es selbst nicht wirklich. Will jmd. mein APS30 kaufen?
Gruß,
Martin
andy999 schrieb:
Hallo Martin,
gibt es eigentlich etwas neues von Deinem Projekt?
--
Oben ohne - nicht nur bei Frauen schön...
--
There are 10 types of people in the world: those who know binary and those who don't. | Antworten
Antworten mit Zitat
Moderatoren-Team informieren Themen-Abo bestellen |
| | Affiliate-Anzeigen:
|
| |
Beitrag von:
User existiert nicht mehr bei MBSLK.de | | |
Beitrag von:
User existiert nicht mehr bei MBSLK.de | | | Affiliate-Anzeigen:
|
| |
Beitrag von:
... ist OFFLINE
Schreiberlevel: Forenquartaner
Beiträge: 149
User seit vor Apr. 03
| Geschrieben am 21.03.2004 um 14:37 Uhr  
| Hallo,
ich bin durch Zufall auf das Stimmenprojekt gestoßen und frage mich ob es da Neuigkeiten gibt. Ich hab leider keine Ahnung vom Programmieren und habe auch keine Vorstellung wie die Stimmen ausgetauscht werden können, aber so eine Geschichte wie beim Traffic Pro / DTM mit einer Stimmen CD wäre für das APS30 eine tolle und lustige Sache.
Ist da noch jemand dran???
Viele Grüße aus Hamburg
Horst | Antworten
Antworten mit Zitat
E-Mail an Horst K Moderatoren-Team informieren Themen-Abo bestellen |
| |
|
|
| Wer ist online?
| | Anonym :477 Mitglieder: 0 Im Chat : 0
|
| Google@MBSLK
| | |
| affil_r_u
| |
|
| google 160
| | |
|