用DirectSound录音

bosnma 2008-11-26 04:47:16
现在我需要将客户端(Windows Form)用户说的声音录进电脑,存入缓冲区,然后通过web service传到服务器。同时接受服务器返回的数据并在客户端播放。

这个我已经实现了,使用Microsoft.DirectX.DirectSound和Microsoft.DirectX

问题来了

录音的过程中,如果用户超过指定时间没有说话,必须中止客户端与服务器之间的传输,并且通知服务器传输的数据长度,服务器会处理这一段落的语音数据并返回处理结果,怎样才能实现“超过一定时间没有说话”的通知呢?


备注:
实现语言:C#
...全文
328 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
tyg111 2010-07-13
  • 打赏
  • 举报
回复
lz你的代码能不能给我一份啊,万分感谢
surewy 2008-11-27
  • 打赏
  • 举报
回复
mark
chinaxc 2008-11-27
  • 打赏
  • 举报
回复
人才出现了
mjjzg 2008-11-26
  • 打赏
  • 举报
回复
没搞过,顶一下,学习
yagebu1983 2008-11-26
  • 打赏
  • 举报
回复
应该可以的,根据文件变化,
和视频的差不多!!
qiqundelang 2008-11-26
  • 打赏
  • 举报
回复
这样你看行不?你再开一个线程也调用录音,把BUFF里的数据和这个想比较,哦!
不行用的是一个话筒呀!两个话筒也许可以,另一个放在离录音远的地方也许成!
bosnma 2008-11-26
  • 打赏
  • 举报
回复
ok!确实是这样的,声音大,平均值会变大。
skison 2008-11-26
  • 打赏
  • 举报
回复
你先分段测试下 不说话的0.1秒和说话的0.1秒肯定不同
skison 2008-11-26
  • 打赏
  • 举报
回复
| | 取样1 | 取样2 |
| 单声道 |--------------------------------------------------------
| 16bit量化 | 声道0 | 声道0 | 声道0 | 声道0 |
| | (低位字节) | (高位字节) | (低位字节) | (高位字节) |
bosnma 2008-11-26
  • 打赏
  • 举报
回复
我算了byte[]的平均值。
从不说话,到说话,发现平均值变大了!或许?我可以用这个来判断?


107.149
108.54925
108.337
106.39975
104.9475
112.34
106.4685
109.36325
105.14925
106.177
110.10675
101.84175
110.8665
108.03225
105.93775
109.5185
102.70875
107.58275
107.56925
106.948
106.39475
109.02725
107.921
109.0515
107.19275
111.62675
104.7495
105.77075
109.8325
104.68225
107.74575
104.8825
108.9085
111.47375
126.61375
120.449
130.38475
123.3895
123.319
115.018
124.5095
130.238
130.523
128.995
131.10025
126.289
126.4885
129.4535
128.46925
125.84575
124.65525
108.8315
104.23025
123.765
119.1755
132.3605
134.504
131.00875
121.89225
132.863
131.67775
134.45825
127.8435
122.0265
113.935
88.54475
105.075
qiqundelang 2008-11-26
  • 打赏
  • 举报
回复
要是开发的软件在理想环境下那样是可以的,关键你的软件是个公共产品,你怎么来判断噪音呢,噪音也有大有小的.
以上是我的观点不一定正确,呵呵!
bosnma 2008-11-26
  • 打赏
  • 举报
回复
WaveFormat format = new WaveFormat();
format.FormatTag = WaveFormatTag.Pcm; // PCM
format.SamplesPerSecond = 16000; // 16KHz
format.BitsPerSample = 16; // 16Bit
format.Channels = 1; // Mono
format.BlockAlign = (short)(format.Channels * (format.BitsPerSample / 8));
format.AverageBytesPerSecond = format.BlockAlign * format.SamplesPerSecond;
return format;



wav的规格如上
bosnma 2008-11-26
  • 打赏
  • 举报
回复
再发一个没有说话时候的byte[]

28 0 145 255 187 255 108 0 158 0 125 0 116 0 69 0 26 0 64 0 125 0 14 0 48 0 85 0 87 0 250 255 165 0 122 0 247 255 68 0 38 0 169 255 239 255 45 0 74 0 130 0 151 0 45 0 230 255 61 0 177 0 146 0 196 255 209 255 213 255 35 0 147 0 72 0 244 255 45 0 5 0 193 255 173 0 66 0 237 255 79 0 247 255 228 255 52 0 116 0 73 0 63 0 19 0 8 0 166 0 185 0 12 0 199 255 16 0 40 0 1 0 23 0 242 255 6 0 115 0 69 0 18 0 42 0 125 0 185 255 112 255 233 255 19 0 21 0 18 0 81 0 49 0 152 255 175 255 176 255 2 0 53 0 202 255 81 255 146 255 123 0 148 0 97 0 6 0 167 255 219 255 40 0 27 0 34 0 115 0 215 255 144 255 40 0 37 0 71 0 3 0 254 255 21 0 44 0 203 255 19 0 87 0 201 255 129 255 152 255 58 0 56 0 14 0 251 255 231 255 189 255 38 0 186 255 89 255 220 255 23 0 163 255 205 255 44 0 54 0 209 255 16 0 235 255 135 255 198 255 240 255 33 0 42 0 101 0 243 255 218 255 135 0 122 0 205 255 136 255 136 255 233 255 56 0 72 0 219 255 154 255 124 255 78 255 229 255 146 0 19 0 207 255 218 255 233 255 250 255 203 255 230 255 41 0 3 0 76 255 253 255 71 0 22 0 194 255 109 255 175 255 185 255 236 255 224 255 253 255 217 255 18 0 40 0 244 255 8 0 56 0 123 255 142 255 32 0 40 0 21 0 177 0 86 0 246 255 240 255 187 255 149 255 39 0 101 0 200 255 151 255 200 255 89 0 105 0 98 0 19 0 185 255 250 255 28 0 202 255 105 0 161 0 102 255 224 255 78 0 227 255 12 0 70 0 228 255 233 255 236 255 252 255 68 0 227 255 170 255 194 255 223 255 55 0 84 0 44 0 15 0 233 255 215 255 53 0 239 255 184 255 2 0 25 0 156 255 93 0 145 0 241 255 6 0 119 0 184 255 191 255 69 0 104 0 83 0 106 0 47 0 185 255 71 0 179 0 99 0 131 255 160 255 227 255 30 0 55 0 65 0 43 0 19 0 22 0 199 255 43 0 140 0 40 0 243 255 198 255 200 255 78 0 108 0 66 0 88 0 225 255 143 255 102 0 243 0 147 0 9 0 34 0 248 255 32 0 255 255 48 0 2 0 243 255 53 0 39 0 21 0 26 0 122 0 222 255 199 255 57 0 81 0 97 0 158 0 105 0 19 0 213 255 193 255 185 255 46 0 100 0 233 255 141 255 48 0 206 0 122 0 40 0 23 0 254 255 57 0 89 0 114 0 243 0 153 0 213 255 48 0 147 0 49 0 43 0 46 0 0 0 48 0 55 0 55 0 179 0 37 0 194 255 146 255 5 0 179 0 142 0 68 0 43 0 4 0 212 255 168 0 34 0 206 255 93 0 103 0 140 255 145 0 183 0 41 0 111 0 140 0 222 255 207 255 9 0 109 0 159 0 165 0 89 0 8 0 164 0 76 1 190 0 235 255 233 255 203 255 88 0 102 0 107 0 112 0 83 0 50 0 214 255 188 0 161 0 19 0 4 0 49 0 97 0 91 0 35 0 64 0 108 0 211 255 61 0 195 0 101 0 70 0 3 0 242 255 36 0 14 0 38 0 97 0 235 255 207 255 121 0 97 0 15 0 151 0 247 255 192 255 68 0 90 0 236 255 157 0 136 0 20 0 46 0 254 255 210 255 231 255 96 0 28 0 109 255 214 255 78 0 92 0 183 0 91 0 68 0 32 0 2 0 69 0 127 0 156 0 61 0 230 255 101 0 133 0 52 0 47 0 106 0 29 0 8 0 54 0 53 0 112 0 245 255 236 255 208 255 26 0 81 0 99 0 252 255 26 0 247 255 53 0 90 0 8 0 14 0 47 0 3 0 187 255 43 0 121 0 21 0 73 0 86 0 201 255 208 255 248 255 102 0 60 0 69 0 34 0 13 0 122 0 155 0 12 0 166 255 115 255 197 255 28 0 52 0 42 0 231 255 237 255 146 255 183 255 160 0 95 0 194 255 142 255 139 255 177 255 214 255 19 0 251 255 250 255 204 255 251 255 46 0 102 0 242 255 74 255 188 255 250 255 10 0 68 0 217 255 58 255 212 255 6
bosnma 2008-11-26
  • 打赏
  • 举报
回复
以下是说话的,感觉差不多。。。
233 6 238 11 245 190 253 184 4 105 7 141 4 8 254 46 248 184 244 175 244 243 247 253 253 121 4 3 11 35 15 46 14 137 9 81 2 228 249 103 243 231 240 225 241 123 244 71 249 161 253 5 0 214 255 67 253 207 248 91 244 101 241 236 240 123 243 126 248 217 254 133 3 209 5 53 5 15 3 78 255 128 251 166 248 213 247 208 249 158 252 21 0 177 2 45 3 74 1 244 253 216 250 15 248 21 247 190 247 151 249 93 253 77 0 20 2 230 2 185 2 233 0 19 255 40 254 46 254 149 255 162 2 5 6 25 9 166 11 13 13 46 13 12 13 205 13 90 14 195 15 82 18 43 21 85 23 66 25 104 26 133 26 210 25 31 21 100 10 59 253 185 241 122 234 251 231 140 233 193 238 236 244 101 250 23 254 186 254 67 251 56 245 72 239 55 237 29 241 100 249 156 4 200 14 3 22 57 25 53 23 194 16 236 7 190 254 8 248 225 247 175 252 42 4 13 10 129 12 48 11 89 6 251 254 188 246 3 239 67 234 252 234 144 239 16 247 67 255 17 5 69 6 140 4 252 0 175 252 246 248 206 247 253 248 107 252 95 2 168 8 15 12 5 12 136 8 106 1 105 250 18 245 152 241 193 239 201 240 210 244 182 249 124 254 46 1 36 0 140 252 186 248 247 244 49 243 73 244 226 246 95 251 168 0 126 5 193 7 181 6 73 3 3 255 58 250 58 247 94 246 197 247 183 251 7 255 186 1 92 3 112 2 32 255 27 252 175 248 135 246 134 247 25 250 31 253 132 1 75 5 107 6 195 5 28 4 108 1 86 255 26 255 176 0 156 3 200 7 162 11 198 14 168 17 41 19 45 19 215 17 26 17 74 17 204 18 79 20 34 22 188 24 49 26 30 24 193 15 93 3 119 246 197 235 112 230
187 229 41 233 221 239 237 247 103 254 211 1 172 0 26 251 121 244 114 239 109 239 90 243 93 252 53 7 41 17 113 24 213 26 137 23 54 15 38 5 177 251 159 246 65 247 139 251 87 1 233 6 161 10 165 10 71 6 103 255 38 246 252 237 34 233 155 233 175 238 152 246 160 254 159 4 124 7 175 7 145 5 72 0 162 250 55 247 44 247 184 250 148 0 88 6 92 10 247 10 195 6 3 1 153 249 40 242 135 237 131 236 38 239 212 244 53 251 99 0 103 3 39 2 241 253 35 249 27 246 212 243 18 244 90 247 59 252 169 1 83 6 117 8 9 6 235 1 120 253 214 248 229 245 107 246 165 248 188 251 124 255 188 2 210 3 134 2 220 255 164 252 199 249 111 248 75 248 122 250 82 254 122 2 74 5 80 6 123 6 66 5 161 3 222 1 75 1 151 2 122 5 100 9 137 13 253 17 117 20 6 21 196 20 197 19 224 18 125 18 21 19 222 20 200 23 5 24 109 19 143 9 236 252 102 241 35 233 139 229 120 230 149 235 208 242 203 250 86 0 29 2 87 255 3 249 180 242 234 239 153 241 141 247 6 1 222 10 72 19 158 25 98 26 188 20 164 10 143 255 40 248 124 245 110 247 97 252 194 1 157 6 129 10 194 9 134 4 44 252 63 242 76 235 158 232 202 234 9 241 255 248 176 0 34 6 165 9 74 9 212 4 5 255 191 249 171 246 197 247 114 252 46 2 147 7 241 9 51 9 187 4 3 254 70 246 66 239 119 235 198 235 224 239 101 246 60 253 27 1 123 2 41 1 134 253 39 249 242 245 200 244 165 245 138 249 67 255 141 3 229 6 101 7 40 5 247 0 221 251 133 247 103 245 148 246 99 249 20 253 120 0 180 2 100 3 28 2 53 255 234 251 44 249 78 248 56 249 81 252 45 1 170 4 244 6 77 8 133 7 197 5 187 3 83 2 238 2 0 5 123 8 182 13 253 18 89 22 90 23 211 22 93 21 128 20 54 19 218 18 132 20 35 22 154 21 204 15 140 4 213 247 50 238 246 231 114 229 201 231 116 237 255 244 168 252 50 1 136 1 10 253 229 246 250 241 126 241 20 246 76 253 54 6 254 15 237 23 31 27 169 24 95 16 176 5 19 252 113 246 166 245 11 249 163 254 224 3 148 7 177 8 124 5 34 255 54 246 228 237 153 232 79 233 99 238 8 246 216 254 80 5 162 9 180 10 132 8 218 2 178 252 163 248 208 247 178 250 67 0 131 5 96 8 37 8 201 4 166 254 214 247 139 241 28 237 155 236 222 239 31 245 196 250 133 255 193 1 84 1 126 254 208 250 135 247 49 246 60 247 147 250 113 254 116 2 145 5 209 5 216 3 161 0 1 253 208 249 88 248 42 248 248 249 19 253 168 255 57 1 218 1 225 0 133 254 151 252 15 251 177 250 152 251 87 253 80 0 112 3 174 5 239 5 58 5 169 4 65 4 61 4 167 5 194 7 104 10 178 14 86 18 157 20 231 21 32 22 23 21 138 20 207 20 13 21 38 22 82 23 95 20 185 11 79 255 41 243 184 234 183 230 171 230 13 234 49 240 20 248 252 254 46 1 248 254 178 249 12 244 222 240 66 242 10 249 172 2 214 12 127 20 186 25 184 26 87 21 96 11 59 0 137 248 139 245 225 246 2 252 75 2 123 6 216 7 126 5 135 0 70 249 192 240 65 234 49 232 233 235 243 242 237 251 60 3 21 8 15 10 68 8 210 3 1 255 40 251 113 249 144 251 188 0 86 5 230 8 97 9 48 6 189 255 107 248 111 241 138 236 104 236 115 239 100 244 134 249 57 254 30 0 141 255 190 252 215 248 78 246 194 245 42 247 120 250 75 255 217 3 214 5 199 5 103 3 117 255 205 251 1 249 14 248 86 249 104 251 58 254 176 0 171 1 8 1 71 254 225 251 67 250 171 249 201 250 50 253 54 255 16 2 75 4 234 4 92 4 74 3 99 2 181 1 120 2 31 5 97 8 106 12 113 16 241 18 235 19 8 20 5 20 147 19 227 19 73 20 255 20 11 23 130 25 26 24 122 16 134 2 68 244 180 233 87 228 71 228 37 232 4 240 211 248 37 255 77 2 125 0 47 250 47 243 228 238 196 239 26 247 151 2 237 13 253 23 40 29 140 28 246 21 54 11 213 255 126 247 107 244 197 246 10 253 228 3 40 9 126 9 129 5 78 254 111 245 202 236 185 231 212 231 186 236 94 245 176 254 2 6 231 9 226 9 212 6 161 1 219 252 210 249 183 249 242 253 136 4 21 10 129 12 232 11 175 6 35 255 148 246 146 238 201 233 138 233 160 237 235 243 138 251 72 0 190 1 236 255 123 251 254 246 205 243 90 243 53 246 179 251 155 1 247 6 206 9 122 8 229 3 134 253 138 248 154 245 130 245 106 248 230 252 54 1 172 4 172 4 25 2 146 254 4 251 245 247 67 247 156 249 113 253 220 1 46 6 56 8 170 7 102 5 211 2 248 0 94 1 48 4 2 8 179 12 78 18 173 22 156 24 164 24 252 22 215 20 46 19 168 19 207 21 114 23 237 20 164 10 95 252 150 240 200 232 46 229 124
skison 2008-11-26
  • 打赏
  • 举报
回复
采样率多少
bosnma 2008-11-26
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 skison 的回复:]
使用CaptureBuffer.Read方法不是返回了个byte[]吗? 这就是音频数据。

现在的问题是怎么去评判人在说话没。

考虑到背景噪音的影响,没人说话,可能byte[]里是80 75 81 82 76 79 88 ......

如果是有人说话,就是180 210 80 69 133...

你可以采用分段计算,每0.2秒(或者说1024*20byte)算一次均值(方差),比较5秒内的25次均方差的差异度。
慢慢试,找出一个值,认定当差异度小于这个值就是没人说话 大于这个…
[/Quote]

我获取了下数据,没人说话时:
65 0 92 0 6 0 79 0 92 0 75 0 36 0 64 0 57 0 106 0 47 0 229 255 48 0 31 0 78 0 72 0 39 0 30 0 24 0 31 0 84 0 13 0 181 255 244 255 20 0 35 0 45 0 254 255 253 255 35 0 80 0 223 255 215 255 19 0 207 255 235 255 43 0 1 0 6 0 236 255 252 255 36 0 240 255 251 255 33 0 10 0 36 0 67 0 24 0 54 0 54 0 228 255 13 0 30 0 50 0 71 0 53 0 46 0 56 0 29 0 29 0 59 0 45 0 115 0 97 0 55 0 29 0 70 0 69 0 49 0 61 0 37 0 46 0 84 0 110 0 243 255 24 0 21 0 15 0 120 0 63 0 18 0 45 0 64 0 25 0 20 0 31 0 23 0 56 0 233 255 35 0 111 0 25 0 17 0 30 0 100 0 29 0 0 0 246 255 248 255 245 255 213 255 20 0 20 0 213 255 33 0 86 0 34 0 21 0 18 0 15 0 13 0 53 0 53 0 17 0 3 0 3 0 3 0 254 255 79 0 101 0 24 0 33 0 34 0 32 0 17 0 56 0 137 0 96 0 19 0 70 0 102 0 25 0 252 255 12 0 56 0 82 0 56 0 123 0 103 0 16 0 65 0 76 0 39 0 31 0 45 0 88 0 45 0 33 0 70 0 93 0 67 0 15 0 68 0 2 0 199 255 33 0 40 0 13 0 31 0 55 0 18 0 253 255 35 0 23 0 5 0 36 0 250 255 5 0 23 0 243 255 39 0 49 0 21 0 75 0 6 0 57 0 62 0 49 0 94 0 73 0 59 0 70 0 44 0 36 0 102 0 29 0 91 0 78 0 22 0 53 0 127 0 158 0 116 0 131 0 43 0 46 0 111 0 66 0 81 0 104 0 4 0 88 0 84 0 60 0 252 255 216 255 50 0 245 255 40 0 60 0 10 0 28 0 38 0 117 0 253 255 187 255 234 255 223 255 76 0 56 0 25 0 10 0 250 255 96 0 45 0 9 0 30 0 23 0 7 0 245 255 245 255 235 255 62 0 46 0 243 255 252 255 237 255 216 255 198 255 245 255 34 0 35 0 41 0 31 0 66 0 10 0 63 0 72 0 46 0 40 0 225 255 18 0 70 0 31 0 30 0 27 0 233 255 45 0 6 0 252 255 252 255 231 255 242 255 23 0 21 0 21 0 101 0 253 255 17 0 3 0 1 0 35 0 11 0 28 0 29 0 2 0 0 0 41 0 54 0 237 255 240 255 67 0 18 0 18 0 255 255 231 255 41 0 60 0 214 255 211 255 55 0 206 255 181 255 30 0 35 0 68 0 38 0 248 255 44 0 31 0 209 255 14 0 209 255 194 255 253 255 240 255 243 255 6 0 41 0 9 0 216 255 249 255 221 255 70 0 35 0 18 0 56 0 46 0 46 0 73 0 23 0 13 0 97 0 70 0 244 255 34 0 52 0 219 255 248 255 220 255 0 0 51 0 1 0 69 0 91 0 45 0 102 0 80 0 67 0 5 0 221 255 41 0 58 0 119 0 67 0 223 255 53 0 248 255 238 255 54 0 246 255 40 0 49 0 24 0 15 0 21 0 252 255 219 255 56 0 22 0 229 255 240 255 16 0 55 0 205 255 1 0 0 0 231 255 64 0 203 255 242 255 249 255 0 0 50 0 236 255 37 0 58 0 31 0 26 0 63 0 40 0 252 255 53 0 56 0 31 0 75 0 44 0 50 0 82 0 51 0 81 0 64 0 103 0 96 0 71 0 52 0 97 0 72 0 50 0 78 0 40 0 87 0 28 0 15 0 32 0 47 0 28 0 32 0 67 0 32 0 40 0 41 0 12 0 21 0 235 255 205 255 41 0 4 0 208 255 75 0 45 0 240 255 9 0 229 255 216 255 237 255 250 255 29 0 2 0 224 255 204 255 190 255 231 255 12 0 42 0 52 0 107 0 67 0 36 0 203 255 234 255 68 0 255 255 251 255 2 0 219 255 19 0 22 0 13 0 58 0 136 0 21 0 62 0 129 0 26 0 15 0 87 0 40 0 26 0 103 0 193 255 200 255 36 0 23 0 150 0 75 0 35 0 35 0 70 0 83 0 68 0 251 255 229 255 56 0 71 0 69 0 72 0 79 0 75 0 28 0 13 0 34 0 68 0 88 0 32 0 71 0 51 0 244 255 16 0 5 0 23 0 43 0 228 255 7 0 43 0 53 0 22 0 252 255 241 255 14 0 43 0 81 0 60 0 242 255 32 0 243 255 227 255 40 0 44 0 28 0 67 0 127 0 89 0 82 0 23 0 31 0 62 0 46 0 168 0 97 0 58 0 86 0 49 0 74 0 90 0 42 0 44 0 33 0 66 0 117 0 131 0 57 0 22 0 110 0 37 0 47 0 140 0 114 0 43 0 83 0 70 0 44 0 59 0 50 0 34 0 252 255 16 0 79 0 78 0 15 0 22 0 46 0 97 0 75 0 44 0 34 0 60 0 249 255 192 255 195 255 246 255 253 255 237 255 191 255 196 255 225 255 159 255 232 255 224 255 230 255 9 0 243 255 206 255 18 0 73 0 0 0 51 0 39 0 24 0 133 0 97 0 11 0 68 0 72 0 15 0 12 0 34 0 11 0 59 0 54 0 71 0 134 0 90 0 56 0 8 0 37 0 104 0 112 0 88 0 51 0 72 0 121 0 105 0 97 0 36 0 253 255 231 255 245 255 16 0 236 255 25 0 62 0 33 0 62 0 46 0 28 0 53 0 37 0 56 0 58 0 227 255 222 255 4 0 215 255 4 0 214 255 152 255 248 255 254 255 216 255 249 255 1 0 207 255 35 0 3 0 244 255 251 255 168 255 44 0 39 0 253 255 13 0 9 0 53 0 32 0 38 0 61 0 237 255 30 0 244 255 187 255 28 0 115 0 90 0 44 0 60 0 22 0 23 0 85 0 54 0 111 0 100 0 86 0 38 0 35 0 69 0 74 0 45 0 22 0 6 0 65 0 102 0 34 0 95 0 31 0 254 255 104 0 49 0 8 0 11 0 70 0 77 0 77 0 250 255 250 255 36 0 244 255 16 0 28 0 37 0 46 0 0 0 2 0 7 0 12 0 2 0 230 255 250 255 29 0 229 255 5 0 71 0 87
skison 2008-11-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 soaringbird 的回复:]
除了那个用户外,旁边的别人说话算不算?
如果没人说话,但是旁边有别的非人声音,比如机器的噪音、音乐声等等,这些怎么算?都得考虑到吧
[/Quote]

这种程序肯定是算的,那你还想怎么着,分出放屁和"不"?


你可以观察下数据,一般情况下,没有人对着话筒说话,数据的差异相当小。
具体的统计方法多种多样,可能需要另外具体考虑下。
bosnma 2008-11-26
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 skison 的回复:]
使用CaptureBuffer.Read方法不是返回了个byte[]吗? 这就是音频数据。

现在的问题是怎么去评判人在说话没。

考虑到背景噪音的影响,没人说话,可能byte[]里是80 75 81 82 76 79 88 ......

如果是有人说话,就是180 210 80 69 133...

你可以采用分段计算,每0.2秒(或者说1024*20byte)算一次均值(方差),比较5秒内的25次均方差的差异度。
慢慢试,找出一个值,认定当差异度小于这个值就是没人说话 大于这个…
[/Quote]


非常感谢!我明白了。我试一下。^_^
bosnma 2008-11-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 qiqundelang 的回复:]
换种思路吧!以前我也研究过这个问题,除非你要开发语音识别,要么就要看微软有没有语音输入控件了.反正这是个难题,我当时处理这个是用按扭关掉的录音的,其实说这个也没什么意思,更帮不到你,只是让你换个思路而已!
[/Quote]

你还真猜对了,服务器那边做的处理有语音识别这么一个小部分。
bosnma 2008-11-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 soaringbird 的回复:]
除了那个用户外,旁边的别人说话算不算?
如果没人说话,但是旁边有别的非人声音,比如机器的噪音、音乐声等等,这些怎么算?都得考虑到吧
[/Quote]

噪音当然要考虑。不过其他人说话那个不考虑。

就是理想绝对无声时的“噪声”(麦克或声卡导致的)不算声音。
我说的声音仅仅是用户在讲话,或者说从麦克风里进入了比较大的声音。
加载更多回复(9)

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧