Skip to content

Commit 389e55b

Browse files
committed
feat(gRPC): register VAD Server
Signed-off-by: Ettore Di Giacinto <[email protected]>
1 parent eec0fb9 commit 389e55b

File tree

7 files changed

+57
-0
lines changed

7 files changed

+57
-0
lines changed

backend/backend.proto

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ service Backend {
2828
rpc Rerank(RerankRequest) returns (RerankResult) {}
2929

3030
rpc GetMetrics(MetricsRequest) returns (MetricsResponse);
31+
32+
rpc VAD(VADRequest) returns (VADResponse) {}
3133
}
3234

3335
// Define the empty request
@@ -293,6 +295,19 @@ message TTSRequest {
293295
optional string language = 5;
294296
}
295297

298+
message VADRequest {
299+
repeated float audio = 1;
300+
}
301+
302+
message VADSegment {
303+
float start = 1;
304+
float end = 2;
305+
}
306+
307+
message VADResponse {
308+
repeated VADSegment segments = 1;
309+
}
310+
296311
message SoundGenerationRequest {
297312
string text = 1;
298313
string model = 2;

pkg/grpc/backend.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,6 @@ type Backend interface {
5353
Rerank(ctx context.Context, in *pb.RerankRequest, opts ...grpc.CallOption) (*pb.RerankResult, error)
5454

5555
GetTokenMetrics(ctx context.Context, in *pb.MetricsRequest, opts ...grpc.CallOption) (*pb.MetricsResponse, error)
56+
57+
VAD(ctx context.Context, in *pb.VADRequest, opts ...grpc.CallOption) (*pb.VADResponse, error)
5658
}

pkg/grpc/base/base.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,10 @@ func (llm *Base) StoresFind(*pb.StoresFindOptions) (pb.StoresFindResult, error)
9292
return pb.StoresFindResult{}, fmt.Errorf("unimplemented")
9393
}
9494

95+
func (llm *Base) VAD(*pb.VADRequest) (pb.VADResponse, error) {
96+
return pb.VADResponse{}, fmt.Errorf("unimplemented")
97+
}
98+
9599
func memoryUsage() *pb.MemoryUsageData {
96100
mud := pb.MemoryUsageData{
97101
Breakdown: make(map[string]uint64),

pkg/grpc/client.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -392,3 +392,21 @@ func (c *Client) GetTokenMetrics(ctx context.Context, in *pb.MetricsRequest, opt
392392
client := pb.NewBackendClient(conn)
393393
return client.GetMetrics(ctx, in, opts...)
394394
}
395+
396+
func (c *Client) VAD(ctx context.Context, in *pb.VADRequest, opts ...grpc.CallOption) (*pb.VADResponse, error) {
397+
if !c.parallel {
398+
c.opMutex.Lock()
399+
defer c.opMutex.Unlock()
400+
}
401+
c.setBusy(true)
402+
defer c.setBusy(false)
403+
c.wdMark()
404+
defer c.wdUnMark()
405+
conn, err := grpc.Dial(c.address, grpc.WithTransportCredentials(insecure.NewCredentials()))
406+
if err != nil {
407+
return nil, err
408+
}
409+
defer conn.Close()
410+
client := pb.NewBackendClient(conn)
411+
return client.VAD(ctx, in, opts...)
412+
}

pkg/grpc/embed.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@ func (e *embedBackend) Rerank(ctx context.Context, in *pb.RerankRequest, opts ..
8787
return e.s.Rerank(ctx, in)
8888
}
8989

90+
func (e *embedBackend) VAD(ctx context.Context, in *pb.VADRequest, opts ...grpc.CallOption) (*pb.VADResponse, error) {
91+
return e.s.VAD(ctx, in)
92+
}
93+
9094
func (e *embedBackend) GetTokenMetrics(ctx context.Context, in *pb.MetricsRequest, opts ...grpc.CallOption) (*pb.MetricsResponse, error) {
9195
return e.s.GetMetrics(ctx, in)
9296
}

pkg/grpc/interface.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ type LLM interface {
2424
StoresDelete(*pb.StoresDeleteOptions) error
2525
StoresGet(*pb.StoresGetOptions) (pb.StoresGetResult, error)
2626
StoresFind(*pb.StoresFindOptions) (pb.StoresFindResult, error)
27+
28+
VAD(*pb.VADRequest) (pb.VADResponse, error)
2729
}
2830

2931
func newReply(s string) *pb.Reply {

pkg/grpc/server.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,18 @@ func (s *server) StoresFind(ctx context.Context, in *pb.StoresFindOptions) (*pb.
227227
return &res, nil
228228
}
229229

230+
func (s *server) VAD(ctx context.Context, in *pb.VADRequest) (*pb.VADResponse, error) {
231+
if s.llm.Locking() {
232+
s.llm.Lock()
233+
defer s.llm.Unlock()
234+
}
235+
res, err := s.llm.VAD(in)
236+
if err != nil {
237+
return nil, err
238+
}
239+
return &res, nil
240+
}
241+
230242
func StartServer(address string, model LLM) error {
231243
lis, err := net.Listen("tcp", address)
232244
if err != nil {

0 commit comments

Comments
 (0)