Skip to content

Commit 73d0352

Browse files
committed
clean up gemfie
1 parent ab83a0d commit 73d0352

File tree

5 files changed

+53
-20
lines changed

5 files changed

+53
-20
lines changed

Gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ source :rubygems
22

33
gem 'curb'
44
gem 'json'
5-
gem 'speech2text', :path => ENV["HOME"] + "/google-speech-to-text/"
5+
gem 'speech2text', '0.3.4' #:path => ENV["HOME"] + "/google-speech-to-text/"

Gemfile.lock

+4-8
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,16 @@
1-
PATH
2-
remote: /Users/taf2/google-speech-to-text
3-
specs:
4-
speech2text (0.3.4)
5-
curb
6-
json
7-
81
GEM
92
remote: http://rubygems.org/
103
specs:
114
curb (0.7.15)
125
json (1.5.1)
6+
speech2text (0.3.4)
7+
curb
8+
json
139

1410
PLATFORMS
1511
ruby
1612

1713
DEPENDENCIES
1814
curb
1915
json
20-
speech2text!
16+
speech2text (= 0.3.4)

bin/wav2txt

+43-5
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ end
1515

1616
input = ARGV[0]
1717

18-
system("./splitter -i #{input} -t 15 -d 0.3 -D 10")
18+
system("./splitter -i #{input} -t 15 -d 0.2 -D 9")
1919
path = File.dirname(input)
2020

2121
results = []
@@ -35,13 +35,51 @@ chunks = Dir["#{path}/#{root_name}*.wav.chunk*"].sort do|a, b|
3535
end
3636

3737
# now attempt to combine chunks to be as close to 10 seconds as possible
38-
chunks.each do|chunk|
38+
accom = Speech::AudioInspector::Duration.new("00:00:00.00")
39+
merge_set = [] # array of [chunk,duration]
40+
merged_chunks = []
41+
chunks.each_with_index do|chunk, i|
3942
inspector = Speech::AudioInspector.new(chunk)
40-
puts inspector.duration.inspect
43+
stamp = inspector.duration
44+
accom = accom + stamp
45+
46+
puts "check: #{accom}, #{accom.to_f}"
47+
merge_set << [chunk, stamp]
48+
49+
if accom.to_f > 9.0
50+
last = merge_set.pop
51+
52+
accom = Speech::AudioInspector::Duration.new("00:00:00.00")
53+
merge_set.each {|s| accom = accom + s.last }
54+
merged_list = merge_set.map {|c| c.first }.join(' ')
55+
merge_name = "merged_chunk#{i}.wav"
56+
puts "\tmerge(#{accom.to_s}): #{merge_set.inspect} as #{merge_name}"
57+
if merge_set.size == 1
58+
system("cp #{merged_list} #{merge_name}")
59+
else
60+
system("./merge-wave #{merged_list} #{merge_name}")
61+
end
62+
merged_chunks << merge_name
63+
64+
merge_set = [last]
65+
accom = Speech::AudioInspector::Duration.from_seconds(last.last.to_f)
66+
end
67+
end
68+
69+
if !merge_set.empty?
70+
merged_list = merge_set.map {|c| c.first }.join(' ')
71+
merge_name = "merged_chunk_last.wav"
72+
system("./merge-wave #{merged_list} #{merge_name}")
73+
merged_chunks << merge_name
74+
end
75+
puts merged_chunks.inspect
76+
77+
# unlink all chunks
78+
chunks.each do |chunk|
79+
File.unlink(chunk)
4180
end
42-
exit
4381

44-
chunks.each do|wave|
82+
merged_chunks.each do|wave|
4583
chunk_file = wave.gsub(/\.wav/,'') + ".wav"
4684
system("mv #{wave} #{chunk_file}")
4785
system("speech2text #{chunk_file}")

merge-wave.c

+4-5
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ int main(int argc, char **argv) {
3838
int *buffer = NULL;
3939
int i = 0;
4040

41-
4241
if (argc < 4) {
4342
fprintf(stderr, "usage: %s a1.wav a2.wav ... out.wav\n", argv[0]);
4443
return 1;
@@ -47,17 +46,17 @@ int main(int argc, char **argv) {
4746
memset(&outinfo, 0, sizeof(SF_INFO));
4847

4948
for (i = 1; i < argc-1; ++i ) {
50-
printf("scan: %s\n", argv[i]);
49+
//printf("scan: %s\n", argv[i]);
5150
if (update_output_info(argv[i], &outinfo)) {
5251
return 1;
5352
}
5453
}
5554

56-
printf("%s will be %.2f seconds\n", argv[3], ((double)outinfo.frames / (double)outinfo.samplerate));
55+
printf("%s will be %.2f seconds\n", argv[argc-1], ((double)outinfo.frames / (double)outinfo.samplerate));
5756

58-
out = sf_open(argv[3], SFM_WRITE, &outinfo);
57+
out = sf_open(argv[argc-1], SFM_WRITE, &outinfo);
5958
if (!out) {
60-
fprintf(stderr, "unable to write file: %s\n", argv[3]);
59+
fprintf(stderr, "unable to write file: %s\n", argv[argc-1]);
6160
return 3;
6261
}
6362

merge.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ class Dur < Speech::AudioInspector::Duration
66
accom = Dur.new("00:00:00.00")
77

88
merge_set = []
9-
9+
# decades
1010
["00:00:00.32",
1111
"00:00:04.73",
1212
"00:00:01.82",

0 commit comments

Comments
 (0)