speech
Loading...
Searching...
No Matches
voskTranscriptionExample.py
1#!/usr/bin/env python3
2
3
7
8import argparse
9import yarp
10
11parser = argparse.ArgumentParser(description='speech transcription example')
12parser.add_argument('--model', default='vosk-model-small-es-0.42', type=str, help='language model directory')
13parser.add_argument('--useGPU', action='store_true', help='use GPU if available')
14parser.add_argument('--port', default='/voskTranscriptionExample/sound:i', type=str, help='port name for sound input')
15
16args = parser.parse_args()
17
18yarp.Network.init()
19
20if not yarp.Network.checkNetwork():
21 print('[error] Please try running yarp server')
22 raise SystemExit
23
24options = yarp.Property()
25options.put('device', 'VoskTranscription')
26options.put('model', args.model)
27
28if args.useGPU:
29 options.put('useGPU', True)
30
31dd = yarp.PolyDriver(options)
32
33if not dd.isValid():
34 print('[error] Device not available')
35 raise SystemExit
36
37asr = dd.viewISpeechTranscription()
38
39if not asr.setLanguage('vosk-model-small-es-0.42'):
40 print('[error] Failed to set language')
41 raise SystemExit
42
43class SoundCallback(yarp.SoundCallback):
44 def __init__(self):
45 super().__init__()
46 self.s = yarp.SVector(1)
47 self.d = yarp.DVector(1)
48
49 def onRead(self, sound, reader):
50 if asr.transcribe(sound, self.s, self.d) and self.s[0]:
51 print('Transcription:', self.s[0])
52
53p = yarp.BufferedPortSound()
54c = SoundCallback()
55p.useCallback(c)
56
57if not p.open(args.port):
58 print('[error] Failed to open port')
59 raise SystemExit
60
61input('Press ENTER to quit\n')
62print('Stopping the program...')
63
64p.interrupt()
65p.close()
66
67dd.close()
Definition main.cpp:24